Al igual que otros recursos en Android, se puede acceder a los dibujables a través de la clase 'R', que es solo colección de clases estáticas que contienen campos enteros estáticos. No hay ningún método de "obtener todos los nombres dibujables" (al menos yo no lo sé) aparte de usar la reflexión.
Necesitará una lista de identificadores dibujables para aleatorizar. Puede rellenar automáticamente esta lista mediante la reflexión:
import java.lang.reflect.Field;
...
Field[] fields = R.drawable.class.getFields();
List<Integer> drawables = new ArrayList<Integer>();
for (Field field : fields) {
// Take only those with name starting with "fr"
if (field.getName().startsWith("fr")) {
drawables.add(field.getInt(null));
}
}
De esta manera se obtiene una lista de identificadores de dibujables que le interesan. Puede usar esos ID más adelante, donde normalmente usaría, p. R.drawable.someResource
¡Genial! field.get (i) obtendrá la identificación, int se puede aleatorizar con fields.size() como valor máximo. ¡¡Gracias!! –
Tomasz, gracias a su respuesta, pude escribir https://play.google.com/store/apps/details?id=happyworx.nl.Applez. ¡Gracias! –
¿Está esta respuesta actualizada o ha aparecido algún método mejor en los últimos tres años? – SuperBiasedMan