我想要一组图像视图,但我不知道如何使用imageview类型的对象填充它。
ImageView[] forAdapter = new ImageView[imageIds.size()];
for(int i = 0; i < imageIds.size(); i++)
{
ImageView mImageView = new ImageView(context);
forAdapter[i] = mImageView.setImageDrawable(((imagesPulled.get(imageIds.get(i)))));
}
这不起作用,因为.setImageDrawable
没有返回imageview,我也不知道实际上有任何对象!
我考虑在数组中使用drawables,但我最终为listview设置了一个arrayadapter,我不能使用drawables创建一个R.layout(因为xml文件正在使用ImageView,所以我会得到一个类转换异常不可绘制的类型),所以我只有ImageViews放入一个数组 - 除非我接近问题的错误。
答案 0 :(得分:6)
你的代码几乎就在那里!我将在下面进行一些小改动并发表评论:
ImageView[] forAdapter = new ImageView[imageIds.size()];
for(int i = 0; i < imageIds.size(); i++)
{
forAdapter[i] = new ImageView(context);
forAdapter[i].setImageDrawable(imagesPulled.get(imageIds.get(i)));
}
首先:如果要初始化forAdapter [i],则无需创建新变量并将其分配给它。就在那里:
forAdapter[i] = new ImageView(context);
设置图像(使用setImageDrawable,setImageResource等)不会返回任何内容。这是对图像本身的操作,所以你要做的就是从你想要修改的变量中调用方法:
forAdapter[i].setImageDrawable(imagesPulled.get(imageIds.get(i)));
你做完了:) 如果您有任何疑问,请在评论中提出。
希望它有所帮助。
答案 1 :(得分:2)
您的mImageView是ImageView本身。
因此,forAdapter [i] = mImageView应该可以正常工作。如果您使用其他操作,则可以在分配之前执行这些操作。