Android: установите случайное изображение, используя setImageResource - PullRequest
1 голос
/ 12 июня 2010

Мне нужна помощь с настройкой случайного изображения с помощью метода setImageResource. В папке drawable у меня есть файл JPEG с именем photo0.jpg, photo1.jpg ... photo99.jpg. И работает следующий код:

int p = R.drawable.photo1;
image.setImageResource(p);

Выше будет отображаться photo1.jpg, но я хочу показать случайное изображение. Я попробовал следующее, но это не работает.

String a = "R.drawable.photo";
int n = (int) (Math.random()*100)
String b = Integer.toString(n);
String c = a+b;
int p = Integer.parseInt(c);//checkpoint
image.setImageResource(p);

Похоже, что строка "R.drawable.photoXX" не изменяется на целое число на контрольной точке. Может ли кто-нибудь научить меня правильному коду? Заранее спасибо.

Ответы [ 2 ]

5 голосов
/ 12 июня 2010

Строки очень злые, когда дело доходит до такой работы из-за накладных расходов.Поскольку Android уже предоставляет вам целочисленные идентификаторы, я бы рекомендовал сохранить их все в массиве int, а затем использовать случайное число для индекса.

Код будет выглядеть примерно так:

int imageArr[] = new int[NUM_IMAGES]; 

imageArr[1] = R.drawable.photo;

//(load your array here with the resource ids)

int n = (int)Math.random()*NUM_IMAGES;

image.setImage(imageArr[n]);

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

0 голосов
/ 12 июня 2010

возможно ошибка здесь

int n = (int) (Math.random () * 100)

положить% не * Как это

int n = (int) (Math.random ()% 100)

чтобы получить все числа до 100

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...