我试图从数据库中加载一个图像,但是图像没有加载,logcat显示空
是不是用我编程的方式。
imgdisplay = (ImageView) findViewById(R.id.imgIcon);
myDB = this.openOrCreateDatabase("hello", MODE_PRIVATE, null);
Cursor c = myDB.rawQuery(
"SELECT image FROM employee_details WHERE name= 'vv'", null);
if (c.getCount() > 0) {
c.moveToFirst();
do {
byte[] blob = c.getBlob(c.getColumnIndex("image"));
ImageView iv = (ImageView) findViewById(R.id.imgIcon);
iv.setImageBitmap(BitmapFactory.decodeByteArray(blob, 0,blob.length));
} while (c.moveToNext());
}
c.close();
myDB.close();
Logcat错误是…
08-02 04:51:25.471: D/skia(8433): --- SkImageDecoder::Factory returned null
最佳答案
请尝试下面的代码..
byte[] Image_bytes = cursor.getBlob(cursor.getColumnIndex("image"));
ImageView iv = (ImageView) findViewById(R.id.imgIcon);
iv.setImageBitmap(new ImageConversation().convertArrayToBmp(Image_bytes));
…
public Bitmap convertArrayToBmp(byte[] array) {
Bitmap bitmap = BitmapFactory.decodeByteArray(array, 0, array.length);
return bitmap ;
}
使用跟随循环
c.moveToFirst();
while(!c.isAfterLast()) {
byte[] blob = c.getBlob(c.getColumnIndex("image"));
ImageView iv = (ImageView) findViewById(R.id.imgIcon);
iv.setImageBitmap(BitmapFactory.decodeByteArray(blob, 0,blob.length));
c.moveToNext()
}
关于android - 无法从android中的sqlite数据库加载图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18009100/