۱۳۹۴/۰۷/۲۵, ۰۷:۰۴ ب.ظ
[font]سلام دوستان
من یک عکس رو به صورت زیر در sqlite ذخیره کردم اما وقتی عکس رو از دیتابیس میگیرم چیزی در ایمیج ویو نشون داده نمیشه[/font]
من یک عکس رو به صورت زیر در sqlite ذخیره کردم اما وقتی عکس رو از دیتابیس میگیرم چیزی در ایمیج ویو نشون داده نمیشه[/font]
[font]اول عکسو به ارایه از نوع بایت تبدیل کردم[/font]
کد پیاچپی:
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos); // PNG (you can choose JPEG)
byte[] b = baos.toByteArray();
Insert_to_db(b); // ارسال برای ذخیره در تابع دیتابیس
اینم تابع برای ذخیره کردن
کد پیاچپی:
public void Insert_to_db(byte[] str){
String DATABASE_NAME = "MYIMAGE.db";
String TABLE_NAME = "Im";
try{
SQLiteDatabase mydb = openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE,null);
mydb.execSQL("INSERT INTO " + TABLE_NAME + " (img) VALUES ('"+str+"')");
mydb.close();
}catch(Exception e){
Toast.makeText(getApplicationContext(), "Error in inserting into table", Toast.LENGTH_LONG).show();
}
}
در زیر دوباره اطلاعات رو دریافت کردم و بایت رو به bitmap تغییر دادم
کد پیاچپی:
public void read_to_db(){
String DATABASE_NAME = "MYIMAGE.db";
String TABLE_NAME = "Im";
byte[] Nttt=null;
try{
SQLiteDatabase mydb = openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE,null);
Cursor allrows = mydb.rawQuery("SELECT * FROM "+ TABLE_NAME+" WHERE ID=1", null);
if(allrows.moveToFirst()){
do{
String ID = allrows.getString(0);
Nttt = allrows.getBlob(1);
}
while(allrows.moveToNext());
}
mydb.close();
}catch(Exception e){
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_LONG).show();
}
ByteArrayInputStream bais = new ByteArrayInputStream(Nttt);
Bitmap bm2= BitmapFactory.decodeStream(bais);
ImageView iv = (ImageView) findViewById(R.id.imageView1);
iv.setImageBitmap(bm2); // درج عکس
}
Nttt ارایه ما رو برمیگردونه و اونو به bitmap تبدیل کردم ولی تصویر نمایش داده میشه کسی میتونه بگه مشگل از کجاست
برای ذخیره نوع sqlite رو BLOB در نظر گرفتم.
برای ذخیره نوع sqlite رو BLOB در نظر گرفتم.