我正在android上构建一个非常基本的画廊,它显示相机文件夹中的最后一张图片,用户可以向左滑动查看前一张。
我完成了一个使用 viewpager 的实现,以及一个使用 sampleSize 缩放图像的 pagerAdapter。我的问题是,该实现远不如默认图库应用程序高效,每次滑动图像时,您都必须等待大约 200 毫秒才能加载下一个图像。所以基本上我关于如何实现它的想法是行不通的。
我怎样才能有效地做到这一点,如果可能的话,使用允许稍后放大和缩小的实现?
这看起来很有希望,但我不知道如何用文件而不是可绘制文件来实现它 http://www.androidviews.net/2012/11/photoview/
编辑:
我已经设法使用photoview(一个被黑的viewpager)提高了一点速度,但是将文件路径转换为位图或drawables需要太多时间。
我已经尝试了 dilix 和 iDroid Explorer 建议的这两种方法:
// Method A
Drawable d = Drawable.createFromPath(imagePath);
imageView.setImageDrawable(d);
// Method B
Bitmap myBitmap = BitmapFactory.decodeFile(imagePath);
imageView.setImageBitmap(myBitmap);
但两者都会产生错误Bitmap too large to be uploaded into a texture
。我需要尽快将图像获取到 imageView 并以某种方式绕过此错误,也许我会获得不错的速度。现在我正在缩放图像并将它们转换为可绘制的,但它不是很有效。