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);