如何在无限长度的列表视图中使用少量可绘制图像?
How to use few drawable images in unlimited length of listview?
我在drawable中有3张图片,由于listview的无限长度很难在drawable中存储巨大的图片文件,我想将这三张图片重复或随机地用于整个listview。为了更清楚..
- 提交第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)];
我在drawable中有3张图片,由于listview的无限长度很难在drawable中存储巨大的图片文件,我想将这三张图片重复或随机地用于整个listview。为了更清楚..
- 提交第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)];