2012-04-13 69 views
1

我之前尝试过,只是变得更加困惑,所以我会尽力而且更加精确。我正在制作一个应用程序,其中有7张牌。我想点击甲板,并在屏幕上弹出7张牌中的一张。到目前为止,我有单击按钮时显示随机图像

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     final MediaPlayer mpClick = MediaPlayer.create(this, R.raw.click); 
     randomM = (EditText) findViewById(R.id.randomM); 

     //button 1 start   
     Button bMythos = (Button) findViewById(R.id.mythos); 
     bMythos.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       mpClick.start(); 
       Random r = new Random(); 
       int n=r.nextInt(7) + 1; 
       randomM.setText(String.valueOf(n)); 
      } 
     }); 
     //button 1 end 
    } 

} 

到目前为止,这显示卡甲板我点击并产生一个随机数(文本框几乎是我知道的随机数发生器工作;将被删除时,我找出显示器)。

所以我的问题 我怎样才能得到随机数对应随机卡,并获得卡显示? - 这些卡被标记为mythos1,mythos2等,所以我认为我可以用mythos做一些事情(String.valueOf(n)),但这并不奏效(除非我做了其他错误)[如果你不能说我不知道我在做什么]

+0

要生成从7你在屏幕上显示的任何卡? – 2012-04-13 05:41:19

+0

嗯...... @ Rashmi.B是对的。这个问题很模糊。我已经向其他人回答了一个完全不同的问题。你显然是新手,但如果你能明确说明你要问什么,那会有帮助。 :) – AlbeyAmakiir 2012-04-13 05:49:16

回答

5

尝试这种方式

int[] cards={R.drawable.card1,R.drawable.card2,R.drawable.card3,R.drawable.card4,R.drawable.card5,R.drawable.card6,R.drawable.card7}; 
Random r = new Random(); 
int n=r.nextInt(7); 
imageview.setImageResource(cards[n]); 
+0

作品!像一个魅力!非常感谢! – bribrem 2012-04-13 06:43:14

0

你的问题有点模棱两可,但无论我了解多少,我建议,如果你确信只有7副牌,为什么不硬编码他们并分配一个值给他们每个人。所以当你调用随机函数时,它会检查哪个数字是结果,假设它是5,然后调用setDrawableResource(R.drawable.img5)等等。

0

您应该将卡片保存在某种阵列或List之内。然后,你可以通过他们的号码来引用他们。例如:

ArrayList<Card> deck = new ArraList<Card>(); 

//Fill the ArrayList. Maybe shuffle it. 

selectedCard = ArrayList.get(randomNumber); 

Card可能仅仅是String什么的,来代替。我不知道你用什么样的对象。

0

您应该使用ImageView而不是MediaPlayer。您应该将7个图像(R.drawables.mythos1,...)分配到1-7,并根据随机数将其设置为ImageView imageView.setDrawableResource(R.drawable.myths1);。请看例子从这里Get the ID of a drawable in ImageView