2013-05-03 50 views
-2

我想从一个数组中获得4个图像,但我需要像其他数组 一样的位置图像,如同在示例中一样。android如何从10个图像数组中随机获得4个图像

images = new int[] { 
    R.drawable.a, R.drawable.f, R.drawable.k, 
    R.drawable.u, R.drawable.y, R.drawable.w, R.drawable.t, R.drawable.g, 
    R.drawable.b, R.drawable.o 
}; 

images2 = new int[] { 
    R.drawable.apple, R.drawable.fan, 
    R.drawable.kite, R.drawable.umbrells, 
    R.drawable.yark,R.drawable.watch, R.drawable.tap, 
    R.drawable.gun, R.drawable.ball, R.drawable.orange 
}; 

我现在有2个10张图片的数组。现在我需要来自相同阵列的5个图像,但是随机地并且相同的来自其他阵列的5个图像。

像我需要

array1={R.drawable.a, R.drawable.w,R.drawable.o,R.drawable.g} 

和相同的对应关系。

array2 = {R.drawable.apple, R.drawable.watch,R.drawable.orange,R.drawable.gun} 

回答

0

这是您的解决方案

ArrayList<Integer> list=new ArrayList<Integer>(); 
     ArrayList<Integer> list1=new ArrayList<Integer>(); 
     Random r1=new Random(); 
     int[] images = new int[] {R.drawable.a, R.drawable.f, R.drawable.k, 
       R.drawable.u, R.drawable.y, R.drawable.w, R.drawable.t, R.drawable.g, 
       R.drawable.b, R.drawable.o}; 
     int[] images2 = new int[] { R.drawable.apple, R.drawable.fan, 
       R.drawable.kite, R.drawable.umbrells, 
       R.drawable.yark,R.drawable.watch, R.drawable.tap, 
       R.drawable.gun, R.drawable.ball, R.drawable.orange}; 
     for(int i=0;i<4;i++) 
     { 
      while(true) 
      { 
       int next=r1.nextInt(10)+1; 
       if(!list.contains(next)) 
       { 
       list.add(images[next]); 
       list1.add(images2[next]); 
       break; 
       } 
      } 
     } 
     array1 = convertIntegers(list); 
     array2 = convertIntegers(list1); 

这是

0

1)让数字{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

2)洗牌集合(http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#shuffle(java.util.List)

现在你有类似{7, 9, 5, 2, 4, 3, 1, 0, 8}

3)的集合,使用前五个数字作为你的五个索引 - 它们将是相互独立的,并且可以重复使用这两个数组。

在这种情况下,我们将使用7,9,5,2和4两个阵列。

顺便说一句,如果你想实现随机洗牌自己(例如,如果你想洗牌的阵列,而不是一个集合),是指Random shuffling of an array

+0

如何随机挑选,并同其他阵列 – Android 2013-05-03 06:35:15

+0

@android相应的转换功能,通过实施我的答案:) – Patashu 2013-05-03 06:37:08

+0

我是新的Android我不知道你的第一个链接 – Android 2013-05-03 06:41:39