单击按钮时显示随机图像

时间:2012-04-13 05:32:20

标签: android image random

我之前尝试过,而且更加困惑,所以我会尝试更准确。我正在制作一个应用程序,其中我有一副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))做一些事情但是没有用(除非我做错其他的事情)[如果你不知道我不知道我在做什么]

4 个答案:

答案 0 :(得分:6)

试试这种方式

 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]);

答案 1 :(得分:0)

你的问题有点含糊不清,但是无论我理解什么,我建议,如果你确定只有7个套牌,为什么不对它们进行硬编码并为它们分配值。因此,当你调用随机函数时,它将检查哪个数字是结果,假设它是5,然后调用setDrawableResource(R.drawable.img5),依此类推。

答案 2 :(得分:0)

你应该把卡片保存在一个数组或某种List中。然后,您可以通过他们的号码来引用它们。例如:

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

//Fill the ArrayList. Maybe shuffle it.

selectedCard = ArrayList.get(randomNumber);

Card可能只是String或其他内容。我不知道你正在使用什么样的对象。

答案 3 :(得分:0)

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