Recuento de elementos en la carpeta dibujable que comienzan con una cadena específica

¿Cómo puedo contar el número de elementos en la carpeta dibujable que comienzan con "fr"?

Fondo; Quiero crear un aleatorizador para recoger una imagen aleatoria de la carpeta drawables. Para que sea una prueba de futuro, quiero establecer el valor máximo del aleatorizador en el número de elementos que son elegibles para la recolección.

Al igual que otros recursos en Android, drawables se accede a través de la clase "R", que es sólo la colección de las clases estáticas que contienen campos enteros estáticos. No hay "get all drawable names" metthod (al menos no lo sé) aparte de usar la reflexión.

Usted necesitaría una lista de ids dibujables para aleatorizar de. 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 obtendrás una lista de ids de dibujos que te interesan. Puede usar esos ids más tarde donde normalmente utilizaría, por ejemplo, R.drawable.someResource

  • Configuración de un icono de notificación de Android en una URL remota
  • Android Soundpool Load (String path, int priority)
  • ¿Cómo puedo cargar una clase de un archivo jar empaquetado en mi archivo .apk?
  • Android que soporta todas las tabletas - categorice dibujos y diseños
  • Android ImageButton - determina qué recurso está configurado actualmente
  • Cómo obtener (referencia) el color de texto predeterminado del tema actual en XML
  • Gradle Robolectric Resources NotFoundException en pruebas
  • Crashing debido a "No identificador de paquete al obtener el valor del número de recurso ..."
  • Android: ¿acceder a un drawable desde una carpeta específica -dpi?
  • Recursos compilados de Android - resources.arsc
  • El elemento ListView no permanecerá "seleccionado"
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.