我正在寻找一种在 Android Honeycomb 中加速图库 View 小部件的好方法。我目前正在使用它来显示一些大约 340 x 600 像素的相当大的图像,我希望它在滚动图像时能像黄油一样光滑。
目前速度相当快,但无法与使用 ImageView 加载 ScrollView 并滚动浏览相比。
这是我的自定义 BaseAdapter 中的 getView()
方法的简化版本:
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = (ImageView) new ImageView(Main.this);
}
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPurgeable = true;
((ImageView) convertView).setImageBitmap(createReflection(BitmapFactory.decodeFile(ImageFile, options)));
convertView.setPadding(20, 0, 20, 0);
return convertView;
}
我一直在尝试延迟加载图像,但我不太喜欢结果。
最佳答案
使用图库
和:
loading a ScrollView with ImageViews and scrolling through that
在 ScrollView
场景中,您要预加载所有图像,而不是像在 Gallery
场景中那样动态加载它们。
如果您的图像数量很少,并且您有足够的 RAM 来支持所有图像,那么只需使用您的 ScrollView
。
除此之外,据我所知,您无能为力。您可以维护一个位图缓存,在其中继续解码 Gallery
中当前图像之前的一些图像,并从缓存中提取您的 Adapter
。然而,这只能让你到目前为止——小滚动会很平滑,但超过你的缓存容量仍然会导致按需完成解码。这几乎是不可避免的。
关于android - 在 Android Honeycomb 中加速 Gallery 小部件的技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6969530/