以编程方式设置图像中的随机数

时间:2011-11-30 06:33:10

标签: android random textview imageview

我有4个讲话泡泡,其中2个在白色气泡中有问题,另外2个蓝色泡泡有答案。我已经完成了随机图像,但是如何随机生成问题和答案,我对此感到困惑。我不明白如何在图像中以编程方式设置文本(在这种情况下是语音气泡)。这些是解决我更多问题的图像。!

enter image description here

下次问题显示以下类型。

enter image description here

我已完成以下代码:

public class TestingActivity extends Activity  {

    ImageView i1, i2, i3, i4;
    int TwoArray[][] = new int[6][5];
    static int i;
    static int j;
    static int a = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        setupVeiw();
        setImages();    
    }
   // Shuffle here   
    private void setupVeiw() {

        i1 = (ImageView) findViewById(R.id.imageView1);
        i2 = (ImageView) findViewById(R.id.imageView2);    
        i3 = (ImageView) findViewById(R.id.imageView3);
        i4 = (ImageView) findViewById(R.id.imageView4);
    }    
    public int getImage(int val)
    {
        if (val == 0)
            {
                 // How to set programmatically **questions** numbers in spechh bubble
             return R.drawable.speech_white;
        }    
        else 
            {
                 // How to set programmatically **answers** numbers in spechh bubble
             return R.drawable.speech_blue;
        }    
    }
    public void setImages()
    {
        try {

            int numArray[] = { 0, 0,1, 1 };    
            shuffleList(numArray);    
            for (i = 0; i < numArray.length - 1; i++) 
                    {
                switch (i) 
                            {
                    case 0:
                        i1.setImageResource(getImage(numArray[i]));
                        break;
                    case 1:
                        i2.setImageResource(getImage(numArray[i]));
                        break;
                    case 2:
                        i3.setImageResource(getImage(numArray[i]));
                        break;
                    case 3:
                        i4.setImageResource(getImage(numArray[i]));
                        break;
                                default:
                        break;
                }
            }

        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

我在等你的好建议。 谢谢你提前。

1 个答案:

答案 0 :(得分:2)

如果你改用TextView会很好,你仍然可以在文本视图中设置背景图像。

首先,要生成问题,您可以使用以下属性创建名为Question的类。

public static int ADDITION = 1; // for example's sake

double x, y; // your variables
int operation; // operation

public Question(double x, double y, int operation) {
  this.x = x;
  this.y = y;
  this.operation = operation
}

public double returnAnswer() {
  double answer = 0;
  if(operation == Question.ADDITION) {
    answer = x + y;
  }

  return answer;
}

然后你可以生成问题

Question firstQuestion = new Question(Math.random(), Math.random(), Question.ADDITION);

您可以使用TextViews,而不是使用ImageViews来显示问题。使用setText()方法显示问题,使用setBackground()方法更改背景图片。