我有3或4个图像路径用于加载图像,因此我将其设置为imageview。为什么需要很长时间?或者更好的问一下是否有办法让它更快?在一天结束时,我正在加载以适应低于60 dp高度和宽度的图像视图
Uri mainImgeUri = Uri.parse(imagePath);
InputStream imageStream;
try {
imageStream = mActiviy.getContentResolver().openInputStream(mainImgeUri);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream, null, options);
mainImageIV.setImageBitmap(yourSelectedImage);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
使用案例: 会发生什么是用户将添加5个图像(他可以从Gallery中选择它们,这主要是通过手机摄像头拍摄的)。他点击了保存,我的应用程序在sqlite数据库中存储了它们的路径。然后,当用户再次打开应用程序以查看它们时,我的应用程序查询数据库以获取所有图像的路径并执行x次以上的代码,以便所有图像视图都加载了预期的图像
答案 0 :(得分:0)
查看http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
它解释了如何根据输出图像的所需尺寸计算正确的inSampleSize。它还解释了如何引用大型位图而无需将所有像素数据加载到内存中。
这个想法是你重新采样更大的图像,只将较小的图像加载到内存中,使整个过程更加高效。示例代码是从资源访问位图,但可以根据需要轻松修改。
示例中要注意的重要事项是inJustDecodeBounds和calculateInSampleSize。