我正在为Android安装SQLite数据中的一些数据。我想显示或检索图像数据。以下是我正在尝试的代码。请帮帮我:
---检索图像,但我不能这样做 public String getData(){
// TODO Auto-generated method stub
String[] columns = new String[] { KEY_ROWID, KEY_NAME, KEY_NUMBER };
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
String result = "";
int iRow = c.getColumnIndex(KEY_ROWID);
int iname = c.getColumnIndex(KEY_NAME);
// int iphoto = c.getColumnIndex(KEY_PHOTO);
int inumber = c.getColumnIndex(KEY_NUMBER);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result = result + c.getString(iRow) + " " + c.getString(iname) + " " + c.getString(inumber) + "\n";
}
return result;
}
----此方法在SQLite数据库中保存数据: public long create_Entry(ContactInfo objContact){
// TODO Auto-generated method stub
ContentValues cv = new ContentValues();
cv.put(KEY_NAME, objContact.getFname());
cv.put(KEY_NUMBER, objContact.getPhoneNo());
cv.put(KEY_PHOTO, Utility.getBytes(objContact.getBitmap()));
return ourDatabase.insert(DATABASE_TABLE, null, cv);
}
答案 0 :(得分:0)
在插入数据库之前,需要先将Bitmap图像转换为字节数组,然后使用数据库查询应用它。 从数据库中检索时,您肯定有一个图像字节数组,您需要做的是将字节数组转换回原始图像。
代码段 -
// convert from bitmap to byte array
public static byte[] getBytes(Bitmap bitmap) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 0, stream);
return stream.toByteArray();
}
// convert from byte array to bitmap
public static Bitmap getImage(byte[] image) {
return BitmapFactory.decodeByteArray(image, 0, image.length);
}