【问题标题】:Display a random image when a button is clicked单击按钮时显示随机图像
【发布时间】:2012-04-13 05:32:19
【问题描述】:

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

【问题讨论】:

  • 您想从屏幕上显示的 7 中生成任何卡片?
  • 嗯...@Rashmi.B 是对的。问题很模糊。我已经向其他人回答了一个完全不同的问题。你显然是新手,但如果你能准确地澄清你在问什么,那会有所帮助。 :)

标签: android image random


【解决方案1】:

试试这个方法

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

【讨论】:

    【解决方案2】:

    您的问题有点模棱两可,但无论我了解多少,我建议,如果您确定只有 7 个套牌,为什么不对其进行硬编码并为每个套牌分配一个值。这样当你调用random函数时,它会检查哪个数字是结果,假设是5,然后调用setDrawableResource(R.drawable.img5)等等。

    【讨论】:

      【解决方案3】:

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

      ArrayList<Card> deck = new ArraList<Card>();
      
      //Fill the ArrayList. Maybe shuffle it.
      
      selectedCard = ArrayList.get(randomNumber);
      

      Card 可能只是 String 或其他东西。我不知道你用的是什么类型的对象。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-12-17
          • 2012-04-28
          • 1970-01-01
          • 1970-01-01
          • 2016-09-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多