【问题标题】:Random Images from Array - Android来自数组的随机图像 - Android
【发布时间】:2014-10-01 18:59:48
【问题描述】:

您好,我在 for (int i=0; i

我有两个数组,里面有相同的图像。在此示例中,我有 2 个数组和 3 个图像(每个数组中的图像相同)。我想从每个数组中获取 2 个随机图像,它们必须是相同的图像(因此是一对)。任何关于我做错了什么的意见都会很棒!

那么我想把这些图像放到图像按钮上。

public class Card {
ArrayList<Integer> list=new ArrayList<Integer>();
ArrayList<Integer> list1=new ArrayList<Integer>();
Random r1=new Random();
int[] imageArray1 = new int[] {R.drawable.raptors, R.drawable.okc_thunder, R.drawable.spurs};

int[] imageArray2 = new int[] {R.drawable.raptors, R.drawable.okc_thunder, R.drawable.spurs};
for(int i=0;i<4;i++)
{
    while(true)
    {
        int next=r1.nextInt(10)+1;
        if(!list.contains(next))
        {
            list.add(imageArray1[next]);
            list1.add(imageArray2[next]);
            break;
        }
    }
}
array1 = convertIntegers(list);
array2 = convertIntegers(list1);


public static int[] convertIntegers(List<Integer> integers)
{
    int[] ret = new int[integers.size()];
    Iterator<Integer> iterator = integers.iterator();
    for (int i = 0; i < ret.length; i++)
    {
        ret[i] = iterator.next().intValue();
    }
    return ret;
}

}

【问题讨论】:

    标签: java android arrays image arraylist


    【解决方案1】:

    如果两个数组保存相同的数据,为什么还要使用它们?

    int[] imageArray1 = new int[] {R.drawable.raptors, R.drawable.okc_thunder, R.drawable.spurs};
    int[] imageArray2 = new int[] {R.drawable.raptors, R.drawable.okc_thunder, R.drawable.spurs};
    

    只要做:

    int[] imageArray = new int[] {R.drawable.raptors, R.drawable.okc_thunder, R.drawable.spurs};
    

    另外,我不明白您为什么要使用数组列表和 while 循环。 我会这样做:

    public int getRandomCard() {
        return this.imageArray[r1.nextInt(3)];
    }
    

    【讨论】:

    • 感谢您的回答!我使用了两个数组,因为我需要一对图片。所以在这个例子中,我有 3 张图片(卡片)。但每张牌会有 2 张(6 张牌 / 3 对)。在三对中我需要随机选择两对!你提供的代码会不会做同样的事情?
    猜你喜欢
    • 1970-01-01
    • 2015-03-03
    • 2020-01-12
    • 2020-09-12
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    相关资源
    最近更新 更多