случайное изображение в Android? - PullRequest
1 голос
/ 02 мая 2011

Я пытаюсь сделать вид со случайными изображениями.У меня есть код и никаких ошибок, но когда я нажимаю кнопку, чтобы перейти к случайному изображению, оно просто остается прежним.

Мой источник:

private static final Random rgenerator = new Random();

private static final Integer[] mImageIds = 
    { R.drawable.img2, R.drawable.img1, R.drawable.img3, };

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

    Integer q = mImageIds[rgenerator.nextInt(mImageIds.length)];
    ImageView iv = (ImageView) findViewById(R.id.imageviewyeah);
    iv.setTag(q);

    View nextButton = findViewById(R.id.next_image_button);
    nextButton.setOnClickListener(this);
}

public void onClick(View v)
{
    switch (v.getId())
    {
        case R.id.next_image_button:
            Intent i = new Intent(this, RandomImage.class);
            startActivity(i);
            break;
    }
}

Ответы [ 2 ]

1 голос
/ 02 мая 2011

Просто сохраните ссылку на ваш ImageView и наберите setImageResource(int id) с одним из случайных ресурсов. Вам не нужно начинать новый Activity, чтобы получить случайный идентификатор ресурса ...

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

    Integer q = mImageIds[rgenerator.nextInt(mImageIds.length)];
    final ImageView iv = (ImageView) findViewById(R.id.imageviewyeah);

    View nextButton = findViewById(R.id.next_image_button);
    nextButton.setOnClickListener(new OnClickListener() {
         public void onClick(View V) {
              int resource = mImageIds[rgenerator.nextInt(mImageIds.length)];
              iv.setImageResource(resource);
         }
    });
}
0 голосов
/ 02 мая 2011

Я бы кое-что изменил.

private static final Random rgenerator = new Random();
private ImageView iv;

private static final Integer[] mImageIds = 
    { R.drawable.img2, R.drawable.img1, R.drawable.img3, };

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

    Integer q = mImageIds[rgenerator.nextInt(mImageIds.length)];
    iv = (ImageView) findViewById(R.id.imageviewyeah);
    changeImageResource();

    View nextButton = findViewById(R.id.next_image_button);
    nextButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            changeImageResource();
        }
    });
}

public void changeImageResource()
{
    int i = regeneratos.nextInt(3);
    iv.setImageResource(mImageIds[i]);
}

Надеюсь, это поможет.

...