在SQLite Android中存储和获取图像



我正在制作一个简单的Android应用程序来显示所有国家和地区的国旗。我想使用Room和SQLite来存储标志图像,但我真的不知道哪种方式是最好的。

我可以将Flag图像存储为诸如";法国";然后用检索

getResources().getIdentifier("france","drawable",requireActivity().getPackageName())

但我被警告说,这将非常缓慢,而且在数百个国家,该应用程序不会很好。目前,我在res/drawables文件夹中有所有的标志图标,那么将它们保存到数据库中并稍后检索的最佳方法是什么?非常感谢。

如果要在Room DB中存储可绘制内容,必须将其转换为byteArray

Drawable d;
Bitmap bitmap = ((BitmapDrawable)d).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] bitmapdata = stream.toByteArray();

将文件室中的列定义为byte[]。

最新更新