android - 在 Android Honeycomb 中加速 Gallery 小部件的技巧

标签 android widget gallery android-3.0-honeycomb galleryview

我正在寻找一种在 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/

相关文章:

arrays - 在 Flutter Cards 中插入 JSON 信息?

javascript - Pinterest 看板小部件 CSS 样式

Android - 根据设备分辨率调整图库中图像的大小

android - task.getResult() 抛出 java.lang.ClassCastException

java - Android,将数据推送到一组订阅线程的最佳方式?

android - 如何让平板电脑上的系统安装程序接受未签名的应用程序

javascript - 如何更改模式的代码,以便它与类而不是 href 一起使用?

android - 将 onClickListener 设置为 editText

ios - 为什么我的可配置小部件在编辑时显示 "No options provided for this parameter"?

android - 图库事件到 "when image centered"