我试图从数据库中加载一个图像,但是图像没有加载,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/

10-12 00:07
查看更多