Android 如何在无限长的listview中使用少量可绘制图像?

Android 如何在无限长的listview中使用少量可绘制图像?,android,listview,android-imageview,android-drawable,custom-lists,Android,Listview,Android Imageview,Android Drawable,Custom Lists,我在drawable中有3个图像,由于很难在drawable中存储无限长的listview的巨大图像文件,我想在整个listview中重复或随机使用这三个图像。为了更清楚地了解 在提交第三个数据后,我希望第四个数据有第一个图像,第五个数据有第二个图像,第六个数据有第三个图像。 看起来像 ------>第一个数据的第一个图像 ------>第二个数据的第二个图像 ------>第三个数据的第三个图像 ------>第四个数据的第一个图像 ------>第五个数据的第二个图像 ------>第6个数

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

  • 在提交第三个数据后,我希望第四个数据有第一个图像,第五个数据有第二个图像,第六个数据有第三个图像。 看起来像
  • ------>第一个数据的第一个图像

    ------>第二个数据的第二个图像

    ------>第三个数据的第三个图像

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

    ------>第五个数据的第二个图像

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

    第100个数据的第一个图像

    等等,如果可能的话,也可以随机选择


    我想我必须使用循环和必要条件来解决这个问题。但不知道如何度过。有人能帮我解决这个问题,并实施必要的代码吗?

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

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

    //从我已经存储的drawable以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]; 
    
    这将返回
    0、1或2
    ,并为您获得正确的图像,您无需进行任何比较

    如果你想做随机图像,那也很简单

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

    Random random = new Random(); 
    
    接下来,在循环中,您希望得到一个介于0和2之间的随机值。我们通过
    2
    作为上限

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

    我已经解决了我的问题。顺便说一下,我认为第一个条件可以多次接收相同的图像。是的,第二个更适合于随机生成。谢谢你的合作。:)第一个使用mod的示例将给出1,2,3,1,2,3。。。你正在寻找的图像模式,不需要做任何if语句。是的,我只是错过了某个地方D谢谢你!