b.kordtabar 0 ارسال شده در ۱ بهمن ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۱ بهمن ۱۳۹۳ مجموعه ای از image ها در فولدر assets ذخیره شده اند می خواهم در پایگاه داده sqlite اندروید فیلد imageID درست کنم که همان id عکس های ذخیره شده در فولد assets باشند، یعنی نمی خواهم خود عکس ها را مستقیما در پایگاه داده sqlite وارد کنم آنها را وارد پوشه assets کرده و از آنجا id شان را sqlite وارد کنم و از روی id ها عکس ها را نمایش دهم. برای انجام این کار چه راه حلی مناسب است؟آیا کدی هست که بتواند در این زمینه به من کمک کند؟ ممنون نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Razieh Shahraki 49 ارسال شده در ۲ بهمن ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۲ بهمن ۱۳۹۳ سلام دوست عزیزبله میشه.شما اسم عکس و توی دیتابیس ذخیره میکنین برای خوندن و نمایش دادن اون از کد زیر استفاده کنین [shcode=java]db = myDatabase.getReadableDatabase(); final Cursor c2 = db.rawQuery("select * from Images where Article_Id=" + id + "", null); for (; c2.moveToNext() { String imgName = c2.getString(c2.getColumnIndex("ImgName")); int ImageResource = getResources().getIdentifier(imgName, "drawable", getPackageName()); img1.setImageResource(ImageResource); }[/shcode] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Farzad Sarseifi 575 ارسال شده در ۴ بهمن ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۴ بهمن ۱۳۹۳ در فولدر assets امکان استفاده از id وجود ندازه بدیل اینکه Id ها در بخش res ایجاد میشود و بطور خودکار در فایل R ایجاد میشوند نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
b.kordtabar 0 ارسال شده در ۴ بهمن ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۴ بهمن ۱۳۹۳ سلام دوست عزیزبله میشه.شما اسم عکس و توی دیتابیس ذخیره میکنین برای خوندن و نمایش دادن اون از کد زیر استفاده کنین [shcode=java]db = myDatabase.getReadableDatabase(); final Cursor c2 = db.rawQuery("select * from Images where Article_Id=" + id + "", null); for (; c2.moveToNext() { String imgName = c2.getString(c2.getColumnIndex("ImgName")); int ImageResource = getResources().getIdentifier(imgName, "drawable", getPackageName()); img1.setImageResource(ImageResource); }[/shcode] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
b.kordtabar 0 ارسال شده در ۴ بهمن ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۴ بهمن ۱۳۹۳ سلام دوست عزیزبله میشه.شما اسم عکس و توی دیتابیس ذخیره میکنین برای خوندن و نمایش دادن اون از کد زیر استفاده کنین [shcode=java]db = myDatabase.getReadableDatabase(); final Cursor c2 = db.rawQuery("select * from Images where Article_Id=" + id + "", null); for (; c2.moveToNext() { String imgName = c2.getString(c2.getColumnIndex("ImgName")); int ImageResource = getResources().getIdentifier(imgName, "drawable", getPackageName()); img1.setImageResource(ImageResource); }[/shcode] سلام من از کد زیر برای نمایش عکس هایی که به صورت BLOB در دیتابیس SQLite ذخیره شدند استفاده کردم اما نمی دانم برای ذخیره آدرس عکس ها در دیتابیس و فراخوانی آن در برنامه چه کار کنم؟ [align=left]Database.java package com.example.newdatabaseproject; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import android.R.raw; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; import android.widget.ImageView; public class Database extends SQLiteOpenHelper { private static final SQLiteOpenHelper DBHelper = null; private static final String img1 = null; String DB_PATH = null; public static String DB_NAME = "bank1"; private SQLiteDatabase myDataBase; private final Context myContext; //private SQLiteDatabase db; Database db = new Database(null); /** * Constructor Takes and keeps a reference of the passed context in order to * access to the application assets and resources. * * @param context */ public Database(Context context) { super(context,DB_NAME, null, 2); this.myContext = context; DB_PATH = "/data/data/" + context.getPackageName() + "/" + "databases/"; } public void createDataBase() throws IOException { boolean dbExist = checkDataBase(); if (dbExist) { // do nothing - database already exist } else { // By calling this method and empty database will be created into // the default system path // of your application so we are gonna be able to overwrite that // database with our database. this.getReadableDatabase(); try { copyDataBase(); } catch (IOException e) { throw new Error("Error copying database"); } } } private boolean checkDataBase() { SQLiteDatabase checkDB = null; try { String myPath = DB_PATH + DB_NAME; checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY); } catch (SQLiteException e) { // database does't exist yet. } if (checkDB != null) { checkDB.close(); } return checkDB != null ? true : false; } /** * Copies your database from your local assets-folder to the just created * empty database in the system folder, from where it can be accessed and * handled. This is done by transfering bytestream. * */ private void copyDataBase() throws IOException { // Open your local db as the input stream InputStream myInput = myContext.getAssets().open(DB_NAME); // Path to the just created empty db String outFileName = DB_PATH + DB_NAME; // Open the empty db as the output stream OutputStream myOutput = new FileOutputStream(outFileName); // transfer bytes from the inputfile to the outputfile byte[] buffer = new byte[1024]; int length; while ((length = myInput.read(buffer)) > 0) { myOutput.write(buffer, 0, length); } // Close the streams myInput.close(); myOutput.flush(); myOutput.close(); } //public void getpic(int id){ /*Cursor cu=myDataBase.rawQuery("select * from tbl2 where ID="+id,null); cu.moveToFirst(); byte[] s; s=cu.getBlob(2); return s;*/ //SQLiteDatabase db = dbHelper.getReadableDatabase(); public void openDataBase() throws SQLException { // Open the database String myPath = DB_PATH + DB_NAME; // SQLiteDatabase.NO_LOCALIZED_COLLATORS myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY | SQLiteDatabase.NO_LOCALIZED_COLLATORS | SQLiteDatabase.CREATE_IF_NECESSARY); } @Override public synchronized void close() { if (myDataBase != null) myDataBase.close(); super.close(); } // return cursor public Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) { return myDataBase.query("pwp_singers", null, null, null, null, null, null); } @Override public void onUpgrade(SQLiteDatabase myDataBase, int oldVersion,int newVersion) { } public void useable() { boolean checkdb=checkDataBase(); if(checkdb){ }else{ this.getReadableDatabase(); try{ copyDataBase(); }catch(IOException e){ } } } public void open(){ myDataBase=SQLiteDatabase.openDatabase(DB_PATH+DB_NAME, null, SQLiteDatabase.OPEN_READWRITE); } @Override public void onCreate(SQLiteDatabase arg0) { // TODO Auto-generated method stub } public Cursor rawQuery(String string, Object object) { // TODO Auto-generated method stub return null; } } *************************** Main.java package com.example.newdatabaseproject; import java.io.InputStream; import android.os.AsyncTask; import android.os.Bundle; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; public class Main extends Activity { private EditText et; private Button btn; private Database db; static SQLiteDatabase Db; private ImageView img; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); et=(EditText)findViewById(R.id.et1); img=(ImageView)findViewById(R.id.img); btn=(Button)findViewById(R.id.btn); db=new Database(this); db.useable(); btn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { db.open(); byte[] p=db.getpic(Integer.parseInt(et.getText().toString())); if(p!=null){ Bitmap bm=BitmapFactory.decodeByteArray(p, 0, p.length); img.setImageBitmap(bm); }else{ } db.close(); }); } public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } [/align] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Razieh Shahraki 49 ارسال شده در ۴ بهمن ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۴ بهمن ۱۳۹۳ سلامدوست عزیز شما عکسها رو توی پوشه دراویبل بذار توی دیتابیس هم فقط اسم عکس و بنویس بدون پسوند نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
b.kordtabar 0 ارسال شده در ۶ بهمن ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۶ بهمن ۱۳۹۳ سلام.من وقتی از کد زیر برای نمایش ستونهای حاوی نام عکس ها استفاده می کنم فقط یکی از عکس ها نشان داده می شود .مشکلش کجاست؟[align=left]myDataBase=db.getReadableDatabase();[/align] [align=left] final Cursor c2 = myDataBase.rawQuery("select * from ImagesName ",null);[/align] [align=left] //String imgName=c2.getString(c2.getColumnIndex("ImgName"));[/align] [align=left] //for(c2.moveToNext() (){[/align] [align=left] img=(ImageView)findViewById(R.id.img);[/align] [align=left] Context context=img.getContext();[/align] [align=left] String imgName = c2.getString(c2.getColumnIndex("ImgName"));[/align] [align=left] int ImageResource = getResources().getIdentifier(imgName,"drawable",context.getPackageName());[/align] [align=left] img.setImageResource(ImageResource);[/align] سلامدوست عزیز شما عکسها رو توی پوشه دراویبل بذار توی دیتابیس هم فقط اسم عکس و بنویس بدون پسوند نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Razieh Shahraki 49 ارسال شده در ۶ بهمن ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۶ بهمن ۱۳۹۳ سلامکدها رو داخل تگ جاوا بذارین خوانا باشه نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
b.kordtabar 0 ارسال شده در ۷ بهمن ۱۳۹۳ مالک گزارش اشتراک گذاری ارسال شده در ۷ بهمن ۱۳۹۳ ر کد زیر را که برای فراخوانی عکس ها از پوشه drawable در پایگاه داده sqlite استفاده می کنم فقط یکی از عکس ها را نشان می دهد من می خواهم همه عکس ها را نشان دهد.باید چه کار کنم؟ [align=left]myDataBase=db.getReadableDatabase();[/align] [align=left]final Cursor c2 = myDataBase.rawQuery("select * fromImagesName ",null);[/align] [align=left]for(;c2.moveToNext(){[/align] [align=left]img=(ImageView)findViewById(R.id.img);[/align] [align=left]Context context=img.getContext();[/align] [align=left]String imgName =c2.getString(c2.getColumnIndex("ImgName"));[/align] [align=left]intImageResource=getResources().getIdentifier(imgName,"drawable",context.getPackageName());[/align] [align=left]img.setImageResource(ImageResource);[/align] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
arabian 0 ارسال شده در ۷ بهمن ۱۳۹۳ گزارش اشتراک گذاری ارسال شده در ۷ بهمن ۱۳۹۳ منم همین مشکل رو دارم عکسهام رو داخل دیتابیس ریختم ولی موقع فراخانی فقط یه عکس نشون میده دوستان لطفا کمک کنید اینم کد جاوا: [shcode=java] img=(ImageView) findViewById(R.id.main_matn_img); db=new database(this); db.useable(); db.open(); byte[] p=db.getpic(1); if(p!=null){ Bitmap bm=BitmapFactory.decodeByteArray(p, 0, p.length); img.setImageBitmap(bm); }else{ } db.close(); [/shcode] اینم کد دیتابیسم: [shcode=java] public byte[] getpic(int id){ Cursor cu=mydb.rawQuery("select * from content where ID="+id, null); cu.moveToFirst(); byte[] s; s=cu.getBlob(6); return s; }[/shcode] چیکار کنم؟ نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .