我正在搞乱我自己的图库应用程序,它从网络服务器加载图像(拇指和全尺寸)。我有从数据库返回的图像信息,并编码为json数据。
{"id":["1","2","3"],"name":["Dragon","Butterfly","Tattoo"],"thumb":["thm_polaroid.jpg","thm_default.jpg","thm_enhanced-buzz-9667-1270841394-4.jpg"],"path":["polaroid.jpg","default.jpg","enhanced-buzz-9667-1270841394-4.jpg"]}
我使用developer.android.com hello gridview教程作为参考。他们正在使用引用本地图像的URL。
我的问题。
我应该将我的json数据解析为单独的数组,因为我将在我的应用程序中的某个位置使用所有数据,还是应该将它们全部保存在一起?
如何用缩略图替换下面的静态图像数组?
静态图像数组
private Integer[] mThumbIds = {
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7,
R.drawable.sample_0, R.drawable.sample_1,
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7,
R.drawable.sample_0, R.drawable.sample_1,
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7
};
答案 0 :(得分:1)
最好的方法是定义一个具有成员变量id,name,thumb,path的类。
public class foo{
public int id;
public String name;
public String thumb;
public String path;
}
然后只需将数组解析为此bject类型的ArrayList。
ArrayList<foo> myFooArray = new ArrayList<foo>();
您可以在myFooArray上调用add方法来追加foo对象:
myFooArray.add(new foo());
要回答问题的第二部分,您将引用数组中对象的拇指成员
mThumbIds[position]
变为myFooArray[position].thumb
当然你需要从文件而不是资源加载图像,你应该能够很容易地找到一个这样的例子但是为了线索你可以使用类似setImageDrawable(Drawable.createFromPath(myFooArray[position].thumb);