Программно установить случайное число в изображениях - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть 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 Ответ

2 голосов
/ 30 ноября 2011

Было бы неплохо, если бы вместо этого вы использовали 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);

Вместо того, чтобы использовать ImageViews для отображения вопроса, вы можете использовать TextViews. Используйте метод setText() для отображения вопроса и метод setBackground() для изменения фонового изображения.

...