我需要一个位图来处理,我提供了一个从其他应用程序隐式意图共享的URI。我目前正在使用
Bitmap btmp = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), urinormal);
但创建位图需要半秒钟。我需要它尽可能快地工作,我该怎么办?
我找不到降低位图质量的方法,之后我只能应用BitmapFactory.options创建一个较小的位图,但这没有帮助。
答案 0 :(得分:0)
可能文件太大。如果它很大,则需要所需的时间。你无能为力。
如果大约需要半秒,您可能希望使用AsyncTask
执行解码,以便UI不会冻结。
正如您所说,您正在开发一个图库类型应用。您可能希望在第一次加载位图时将位图的缩略图存储在存储中。因此,下次您的应用程序可以快速解码缩略图文件中的图像。单击图像时,可以从原始位置加载完整大小的图像。
正如@ faztp12在他的回答中所提到的,你也可以使用像Picasso或Glide这样的第三方图像加载库来实现类似的功能。
答案 1 :(得分:0)
图像加载速度缓慢可能有很多原因。连接速度慢,文件大等 我建议你使用Glide,一个用于android的图像加载库。
GlideApp
.with(ctx)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_spinner)
.into(myImageView);
这将显示自定义加载图像,直到加载图像。
您必须使用Glide的Generated API来获得GlideApp
课程。阅读文档,还有许多其他很酷的功能。
希望它有所帮助。