使用视图翻转器

时间:2015-09-11 18:02:34

标签: android android-adapter android-image viewflipper android-adapterview

我有viewflipper,其中包含3个子节点,一个GridView和两个自定义ListView,每个视图都有不同的适配器,每个适配器都有一个带有Universal Image Loader库的图像加载器。

所有适配器的项目都相同,我的目标是以不同的方式显示内容(网格,列表和大列表),但这样每个图像加载3次。有没有办法加载一次图像并将它们显示给他们的孩子?

enter image description here

2 个答案:

答案 0 :(得分:1)

因此,您需要一个三个视图共有的对象,它管理图像加载并保存内存。你拥有它:它是Adapter。使用一个,只需切换布局。

例如,您可以在适配器中定义此方法:

int layoutResId;
public void changeLayout(int layoutResId) {
    this.layoutResId = layoutResId;
    notifyDataSetChanged(); //force the adapter to call getView() again
}

然后在您的getView()方法中,您只需对layoutResId定义的布局进行充气。

答案 1 :(得分:0)

您似乎要问的问题是,您是否可以将图像传递给其他适配器。如果图像不为空,它们会在其他视图中使用它,如果不是,则使用图像加载器。

public class Constants {
    public static Constants INSTANCE = new Constants();
    public Constants() {
    }

    public Uri IMAGE_PATH = Uri.EMPTY;
    public File IMAGE_FILE = null;
    public Bitmap IMAGE = null;
}

据推测,您只能选择其中一种来保存。然后检查它们以查看常量是否拥有可供您显示的图像。