Android使用arraylist在ImageView上加载图像

时间:2012-08-23 06:18:49

标签: java android

这可能是一个我可能会再次忽视的问题,但如果你能帮助我解决它,我将非常感激。 使用此代码从drawable获取图像并将其发送到Imageview.setImageResource(其中我的Imageview在gridview中);一切顺利

private   Integer[] imageIDs = {
            //R.drawable.image1,
            R.drawable.image2,
            R.drawable.image3,
            R.drawable.image4,
            R.drawable.image5,
            R.drawable.image6,
            R.drawable.Image7,
};

//Here is my another code to call imageIDs as ImageResource
ImageView iv = (ImageView)v.findViewById(R.id.grid_item_picture);
iv.setImageResource(imageIDs[position]);
//position is a default value of gridview starting from 0 

现在我要完成的是删除该数组并将其转换为ArrayList,因为需要这些内部数据是动态的。所以我创建了这个新代码

ArrayList<String> array_image = new ArrayList<String>();
        array_image.add("R.drawable.image6");
        array_image.add("R.drawable.image1");

并将ImageView ImageResource设置为此代码

iv.setImageResource(array_image .get(position));

我收到错误说:

  

ImageView类型中的方法setImageResource(int)不适用于参数(Object)   你能帮我解决一下吗?

3 个答案:

答案 0 :(得分:7)

您正在为字符串定义ArrayList。但是,您需要整数作为资源标识符。

改为这样做;

ArrayList<Integer> array_image = new ArrayList<Integer>();
array_image.add(R.drawable.image6);
array_image.add(R.drawable.image1);

答案 1 :(得分:1)

嘿@Janwel尝试使用这个。这很有可能。

List<Integer> mL = new ArrayList<Integer>();
mL.add(R.drawable.image2);

答案 2 :(得分:0)

请尝试

ArrayList<int> array_image = new ArrayList<int>();
array_image.add(R.drawable.image6);
array_image.add(R.drawable.image1);

然后

iv.setImageResource(array_image .get(position));