Вы также можете получить доступ к ресурсам по имени, что может быть жизнеспособным подходом к решению вашей проблемы, если вы знаете имена ресурсов или можете получить их в соответствии с некоторой предварительно определенной схемой именования.
У вас естьчтобы сопоставить имя с идентификатором, используя метод getIdentifier класса Resources
.
String name = "resource" + rng.nextInt(count);
int resource = getResources().getIdentifier(name, "drawable", "com.package");
В документации этого метода сказано:
Примечание: использование этой функции не рекомендуется.Гораздо эффективнее получать ресурсы по идентификатору, чем по имени.
Это верно, но это не должно быть проблемой, если вы делаете это в коде, который не чувствителен к производительности.
В качестве альтернативы, если вы не возражаете перечислить ресурсы в XML, вы можете создать типизированный массив , который затем можно произвольно выбрать из.