在List App中加载数据库图像是困难的

时间:2018-02-02 09:25:58

标签: java android bitmap bitmapfactory

我已在数据库中保存图像路径,并将图像保存在文件夹中。在列表视图应用程序中显示图像卡住并且速度很慢我不明白如何解决这个问题。

我正在使用以下代码:

strContactImage = customer.getPhotoPath();
Bitmap decodedImage = BitmapFactory.decodeFile(strContactImage);
customerImage.setImageBitmap(decodedImage);

customer.getPhotoPath()获取文件夹照片路径图片,并正确显示,但当我添加超过20条记录时,应用程序速度变慢,卡住了。

3 个答案:

答案 0 :(得分:0)

使用uri将图像设置为图像视图,而不是解码为位图...

strContactImage = customer.getPhotoPath(); 
Uri uri=Uri.fromFile(new File(strContactImage));
// Set the uri into ImageView
customerImage.setImageURI(uri);

它可能对你有帮助......

答案 1 :(得分:0)

您可以使用任何图像缓存库,这是Picasso的例子

strContactImage = customer.getPhotoPath();

Picasso.with(context)
   .load(new File(strContactImage))
   .into(customerImage);

答案 2 :(得分:0)

检查他们可以影响内存的图像大小,如果占用大量内存,会使应用程序卡住并放慢速度!

修复

看看这里

Load a Scaled Down Version into Memory

并检查方法calculateInSampleSize()decodeSampledBitmapFromResource()

it’s not worth loading a 1024x768 pixel image into memory if it will eventually be displayed in a 128x96 pixel thumbnail in an ImageView.

你可以使用可以帮助你加载图像的库,他们会关注内存使用情况并将图像加载到你的视图中

图书馆

Picasso

示例:

Picasso.with(context).load(file).into(imageview);

Glide

示例:

GlideApp.with(context).load(file).into(imageview);

工具 - 请查看以下内容以获取更多信息:

TinyPNG - Smart PNG and JPEG compression

Optimizilla