我有viewflipper,其中包含3个子节点,一个GridView
和两个自定义ListView
,每个视图都有不同的适配器,每个适配器都有一个带有Universal Image Loader库的图像加载器。
所有适配器的项目都相同,我的目标是以不同的方式显示内容(网格,列表和大列表),但这样每个图像加载3次。有没有办法加载一次图像并将它们显示给他们的孩子?
答案 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;
}
据推测,您只能选择其中一种来保存。然后检查它们以查看常量是否拥有可供您显示的图像。