来自URI的位图

时间:2017-10-27 02:41:00

标签: java android bitmap

我需要一个位图来处理,我提供了一个从其他应用程序隐式意图共享的URI。我目前正在使用

           Bitmap btmp = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), urinormal);

但创建位图需要半秒钟。我需要它尽可能快地工作,我该怎么办?

我找不到降低位图质量的方法,之后我只能应用BitmapFactory.options创建一个较小的位图,但这没有帮助。

2 个答案:

答案 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课程。阅读文档,还有许多其他很酷的功能。

希望它有所帮助。