Android 数组从blob转换为位图并在listView中使用

Android 数组从blob转换为位图并在listView中使用,android,arrays,listview,bitmap,Android,Arrays,Listview,Bitmap,我想将图像保存到sqlLite并读取它并显示在listview 保存工作正常(使用blob) 例如,我的图像是R.drawable.icon保存后,我有一个字节[] 我是这样用的 Bitmap bm = BitmapFactory.decodeByteArray(img, 0, img.length); holder.img.setImageBitmap(bm); 它工作正常,但我的listview现在工作缓慢。 我尝试过这样设置(使用图像而不是数组) 这个很好用。。。 因此,当我使用位图时,

我想将图像保存到
sqlLite
并读取它并显示在
listview

保存工作正常(使用
blob

例如,我的图像是
R.drawable.icon
保存后,我有一个
字节[]

我是这样用的

Bitmap bm = BitmapFactory.decodeByteArray(img, 0, img.length);
holder.img.setImageBitmap(bm);
它工作正常,但我的listview现在工作缓慢。
我尝试过这样设置(使用图像而不是数组)

这个很好用。。。 因此,当我使用
位图时,它会变得很慢。。。您知道如何将数组显示到
imageView


请注意,我有android:largeHeap=“true”

它工作得很慢,因为每次图像可见时,bytearray都会被解码。这会消耗内存和时间。当您像这样设置图像时,
holder.img.setImageResource(R.drawable.icon)它只是从不消耗内存的可绘制文件夹加载图像。您应该尝试创建一个新线程(可能使用AsyncTask),在后台加载图像。通过这种方式,您可以滚动列表,滚动时图像将在后台加载

您希望/需要使用sqlite执行此任务有什么具体原因吗?我想慢慢地将图片存储到我的数据库(而不是SD卡),因为您的应用程序需要更多的时间将数组解码为内存中的位图,并仍然循环sqlite blob中的每个图像。当您从drawable设置ImageResource时,图像已在内存中就绪,无需更多时间进行解码。感谢您的帮助
holder.img.setImageResource(R.drawable.icon);