Подтвердить что ты не робот

Как динамически получать изображения из выпадающей папки

У меня есть такой массив.

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};

Сейчас у меня есть 6 изображений, поэтому мне статически присваивается имя.

Если у меня есть 50 изображений, которые я не могу дать каждому имени файла в массиве, поэтому он должен быть динамическим, как я могу это достичь.

4b9b3361

Ответ 1

Вы можете использовать getIdentifier()

for (int j = 1; j < 6; j++) {
   Drawable drawable = getResources().getDrawable(getResources()
                  .getIdentifier("d002_p00"+j, "drawable", getPackageName()));
}

Ответ 2

Вы также можете использовать это:

int res = getResources().getIdentifier("<your pakecgename>:drawable/abc", null, null);

Ответ 3

Что-то вроде этого может работать

Field[] drawables = android.R.drawable.class.getFields();
for (Field f : drawables) {
    try {
        System.out.println("R.drawable." + f.getName());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Ответ 4

Используйте следующую строку для динамического рисования:

Drawable drawable = this.getResources().getDrawable(R.drawable.yourDrawableID);

Это даст вам желаемый Drawable.

Ответ 5

public static Drawable getImage(Context context, String name) {
        return context.getResources().getDrawable(context.getResources().getIdentifier(name, "drawable", context.getPackageName()));
}

Ответ 6

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()));
    }
}

Ответ 7

используйте этот код для создания массива, а затем используйте этот массив

int image[] = new int[50];
for (int i = 1 ; i <= 50 ; i++)
{
images[i]  = "R.drawable.d002_p00"+i;
}

Главное, что вам нужно позаботиться, это имя файла должно начинаться с "d002_p00" этого и после цифры от 1 до 50