Cómo obtener imágenes dinámicamente desde una carpeta dibujable
Tengo una matriz como esta.
int image[] = {R.drawable.d002_p001,R.drawable.d002_p002,R.drawable.d002_p003, R.drawable.d002_p004,R.drawable.d002_p005,R.drawable.d002_p006};
En este momento tengo 6 imágenes por lo que se le asigna estáticamente el nombre.
- Cómo getResources (). GetString () funciona android
- Cómo cargar dinámicamente R.styleable recurso?
- R no se puede resolver - Error de Android
- Definición de 'resValue' utilizando una definición de cadena existente
- Android define el color de fondo en TextView en styles.xml
Si tengo unas 50 imágenes que no puedo dar todos y cada nombre de archivo en matriz por lo que necesita ser dinámica, ¿cómo puedo lograr esto.
- Inclusión / exclusión de recursos condicionales para Android apk build
- Establecer sonido de notificación en la carpeta Activos
- Android: cómo agregar a los niños de un diseño xml en una vista personalizada
- Android: html en strings.xml
- Lectura de activos o archivos de recursos o de recursos como un objeto File en Android
- ¿Es posible usar subcarpetas en drawables en Android?
- ¿Cómo obtener un valor de dimensión que sea una referencia a un atributo?
- "El espacio de nombres no está enlazado" en el archivo xml de recursos cuando se inspecciona el código con Android Studio
Puede utilizar getIdentifier()
for (int j = 1; j < 6; j++) { Drawable drawable = getResources().getDrawable(getResources() .getIdentifier("d002_p00"+j, "drawable", getPackageName())); }
También puede utilizar esto:
int res = getResources().getIdentifier("<your pakecgename>:drawable/abc", null, null);
Algo así podría funcionar
Field[] drawables = android.R.drawable.class.getFields(); for (Field f : drawables) { try { System.out.println("R.drawable." + f.getName()); } catch (Exception e) { e.printStackTrace(); } }
public static Drawable getImage(Context context, String name) { return context.getResources().getDrawable(context.getResources().getIdentifier(name, "drawable", context.getPackageName())); }
Utilice la línea siguiente para obtener dibujable dinámicamente:
Drawable drawable = this.getResources().getDrawable(R.drawable.yourDrawableID);
Esto le dará el Drawable deseado.
String[] names = new String []{"yout names..."}; for(String n: names) { Utils.GetDrawableByName(n,this); } public class Utils { public static Drawable GetDrawableByName(String name,Activity context){ Resources res = context.getResources(); return res.getDrawable(res.getIdentifier(name,"drawable",context.getPackageName())); } }
Utilice este código para crear una matriz y luego utilice esa matriz
int image[] = new int[50]; for (int i = 1 ; i <= 50 ; i++) { images[i] = "R.drawable.d002_p00"+i; }
Lo principal que hay que tener cuidado es que el nombre de archivo debe comenzar con "d002_p00" esto y después de que haya dígitos de 1 a 50
- Cómo depurar en Android Studio utilizando adb over WiFi
- ¿Cómo puedo instalar un apk en varios dispositivos conectados?