[英]Bitmap from URI
我需要使用一个位图,并且提供了一个从其他应用程序隐式意图共享的URI。 我目前与
Bitmap btmp = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), urinormal);
但是创建位图最多需要半秒钟。 我需要它尽快运行,该怎么办?
我找不到降低位图质量的方法,之后只能应用BitmapFactory.options创建较小的位图,但这无济于事。
文件大小可能太大。 如果太大,则需要花费时间。 您对此无能为力。
如果大约需要半秒钟,则可能要使用AsyncTask
进行解码,以使UI不会冻结。
如前所述,您正在开发画廊类型的应用程序。 首次加载位图时,您可能希望将它们的缩略图存储在存储器中。 因此,下次您的应用可以快速从缩略图文件中解码图像。 单击图像时,可以从原始位置加载完整尺寸的图像。
正如@ faztp12在他的回答中提到的那样,您也可以使用一些第三方图像加载库(例如Picasso或Glide)来实现类似的功能。
图像加载缓慢的原因可能有很多。 连接速度慢,文件较大等。我建议您使用Glide (Android的图片加载库)。
GlideApp
.with(ctx)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_spinner)
.into(myImageView);
这将显示自定义的加载图像,直到加载图像为止。 但是,您将必须使用Glide的Generated API来具有GlideApp
类。 阅读文档,还有许多其他很棒的功能。
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.