如何在无限长度的列表视图中使用少量可绘制图像?

How to use few drawable images in unlimited length of listview?

我在drawable中有3张图片,由于listview的无限长度很难在drawable中存储巨大的图片文件,我想将这三张图片重复或随机地用于整个listview。为了更清楚..

  1. 提交第3个数据后,我想要第4个数据的第一个图像,第5个数据的第2个图像,第6个数据的第3个图像,一次又一次。 好像是..

第一个图像 ----------> 第一个数据

第二张图像 ----------> 第二条数据

第三张图像 ----------> 第三张数据

第 1 个图像 ----------> 第 4 个数据

第 2 个图像 ----------> 第 5 个数据

第 3 个图像 ----------> 第 6 个数据

................................................ ......

................................................ ......

第一张图像 ----------> 第 100 个数据

................................................ ......

................................................ ......

依此类推或尽可能随机。

我想我必须使用循环和必要条件来解决这个问题。但是不知道怎么走。任何人都可以通过实施必要的代码帮助我解决这个问题吗?

==================条件更新====================

哦,我刚刚解决了这个问题:D。这就是我所做的。

// 从我已经存储的可绘制对象中将图像保存在 int 类型数组中。

images[0] = R.drawable.amin1;

images[1] = R.drawable.amin2;

images[2] = R.drawable.amin3;

// 现在在我点击提交按钮时添加条件

if(index > 2)

{

if(index%3 == 0) { images[index] = images[0]; }

else if(index%2 == 0) { images[index] = images[1]; }

else { images[index] = images[2]; } 

}

这很简单。 :)

改进解决方案的一些建议。

您可以简单地获取 mod (%) 运算符的结果并将其用于您的索引。

images[index] = images[index % 3]; 

这将 return 0, 1, or 2 并为您获得正确的图像,您不需要进行任何比较。

而如果你想做随机图片,那也很简单。

首先,在循环之前创建一个新的 Random 对象。

Random random = new Random(); 

接下来,在您的循环中,您想要获得一个介于 0 和 2 之间的随机值。我们将 2 作为我们的上限。

images[index] = images[random.nextInt(2)];