Конвертировать Drawable в res

#android

#Android

Вопрос:

У меня есть список Drawable, хранящийся в массиве. Теперь я хотел бы преобразовать его в «res» (тип данных int). Возможно ли это? Любая помощь приветствуется.

Комментарии:

1. Лучше всего объяснить, что вы хотите сделать (помимо этого), чтобы сообщество могло лучше помочь вам или предложить обходные пути.

Ответ №1:

Невозможно изменить ресурсы в существующем APK на устройстве.

Ответ №2:

Вероятно, вы пытаетесь получить resID из случайного Drawable. Если это так, то это невозможно — drawable не хранит идентификаторы.

Но если вы используете TypedArray для загрузки ваших чертежей из ресурсов (т. Е. Resources.obtainTypedArray(R.array.your_imgs) ), тогда вы сможете получить resID, вызвав getResourceId(int index, int defValue) :

 TypedArray typedArray = mResources.obtainTypedArray(R.array.my_imgs);
int resID = typedArray.getResourceId(index, defValue);
  

Ответ №3:

«res» — это идентификатор для доступа к ресурсу, упакованному в файл .apk. Итак, я думаю, что «конвертировать» drawable в res на самом деле означает изменение существующего .apk на устройстве, что невозможно

Ответ №4:

если у вас есть доступные для рисования имена в массиве, вы можете использовать

 getIdentifier (String name, String defType, String defPackage);

int resId = getResources().getIdentifier("us","drawable","com.app");
  

Вышеуказанная функция вернет целое значение, такое же, как R.drawable.us .

Вот как вы получаете доступ к именам ресурсов.