我正在开发一个离线应用程序,但我没有从用户的图库中获取任何图片。但我想向我手动插入的用户显示图像。
我能想到的唯一解决方案是将这些图像放入drawable
,然后将其保存到 sqlite 数据库(我不确定如何)。这可以做到吗?
谢谢你。
如果您愿意将图像存储在可绘制文件夹中,您可以在数据库中存储对它们的引用。只需存储一个类似的字符串com.example.yourapp:drawable/imagefilename
并使用它来显示图像,其中yourString
包含来自数据库的字符串..
int imageResource = this.getResources().getIdentifier(yourString, null, null);
yourimageview.setImageResource(imageResource);
您可以为此使用插入 blob
public void insertImg(int id , Bitmap img ) {
byte[] data = getBitmapAsByteArray(img); // this is a function
insertStatement_logo.bindLong(1, id);
insertStatement_logo.bindBlob(2, data);
insertStatement_logo.executeInsert();
insertStatement_logo.clearBindings() ;
}
public static byte[] getBitmapAsByteArray(Bitmap bitmap) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 0, outputStream);
return outputStream.toByteArray();
}