如何从SQLite数据库中检索图像?

4

如何检索存储在Sqlite表中的图像?

该表格如下所示:

public class ImageInDB extends SQLiteOpenHelper {

private static final int DATABASE_VERSION = 2;
private static final String DATABASE_NAME = "test01.db";
private static final String MP_TABLE_NAME = "MPImage";

ImageInDB (Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}// end of 

@Override
public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    db.execSQL(" CREATE TABLE " + MP_TABLE_NAME + " ( " +
            BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
            " img BLOB  " +
            ");" );
}

现在,检索图像的方法应该是什么样子?下面是我的尝试:
public ??? getMP_RPY(long id) {
    SQLiteDatabase db = this.getReadableDatabase();
    SQLiteCursor c = (SQLiteCursor) db.rawQuery("SELECT img FROM MPImage WHERE "+
                                                BaseColumns._ID+" = "+
                                                Long.toString(id), null);
    c.moveToFirst();
    ???? r = c.getDouble(0);
    return r;       
}
2个回答

6

不要将图像存储到SQLite数据库中。相反,只需存储图像的路径即可。或者如果您真的想将图像存储到数据库中,那么请先学习基本的SQ Lite知识。


5
ImageView myImage = (ImageView) findViewById(R.id.myImage);

byte[] bb = cursor.getBlob(cursor.getColumnIndex(MyBaseColumn.MyTable.ImageField));

myImage.setImageBitmap(BitmapFactory.decodeByteArray(bb, 0, bb.length));

或者

请查看此链接


"MyBaseColumn"的值是多少?我是说应该用什么来替换它? - user1125258

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接