我有一个数据库,数据库内容是名称,地址,图像(varchar)和images文件夹。我已经解析器(使用json)并存储在sqlite中,是否可以将图像下载到sqlite?我还想在一个应用程序中呈现它?怎么做 ? 请让我知道:(
答案 0 :(得分:1)
将图像放在sqlite中是不好的做法。 你应该将img存储为文件,并将img的文件路径放到sqlite。
答案 1 :(得分:0)
将它们序列化为内部存储并将路径保存为普通字符串值。但如果您的图片是动态的(从网络资源中加载),我最好保存他们的链接并使用LruCache http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html
答案 2 :(得分:0)
// Create a table with BLOB datatype
String SQL_TABLE = "create table "
+ TABLE_MESSAGE + "(" + "id"
+ " integer primary key autoincrement, "
+ "name" + " text not null, "
+ address + " text not null, "
+ image + " BLOB);";
to store image into this you have to convert it to bytes like so:
public static byte[] makeByte(Bitmap bitmap) {
if (bitmap == null) {
return null;
} else {
byte[] b = null;
try {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.JPEG, 75, byteArrayOutputStream);
b = byteArrayOutputStream.toByteArray();
} catch (Exception e) {
e.printStackTrace();
}
return b;
}
}
在获取字节之后,您可以像保存或更新任何其他字段一样保存到数据库中。 然后您可以使用此功能重新创建图像并添加到ImageView
public static Bitmap getBitmapFromByte(byte[] pByte){
if (pByte == null) {
return null;
}
Bitmap bmp = BitmapFactory.decodeByteArray(pByte, 0, pByte.length);
return bmp;
}
将上面的函数传递给你存储在数据库中的字节,这将返回一个可以在imageview上设置的位图 exmaple Bitmap img = getBitmapFromByte(byteData);