У меня есть много иконки в папке с возможностью переноса, и у меня есть их имя как String. Как я могу получить доступ к папке с возможностью выбора и изменить фоновое изображение (или любое представление), используя это имя динамически. БлагодаряКак преобразовать String в Drawable
ответ
Это может быть сделано с помощью отражения:
String name = "your_drawable";
final Field field = R.drawable.getField(name);
int id = field.getInt(null);
Drawable drawable = getResources().getDrawable(id);
Или с помощью Resources.getIdentifier()
:
String name = "your_drawable";
int id = getResources().getIdentifier(name, "drawable", getPackageName());
Drawable drawable = getResources().getDrawable(id);
Затем используйте это для установки рисуем в любом случае:
view.setBackground(drawable)
, если у вас есть имя файл как строка, которую вы можете использовать:
int id = getResources().getIdentifier("name_of_resource", "id", getPackageName());
с этим идентификатором вы можете получить доступ к нему, как всегда (предполагается, что его растяжимый):
Drawable drawable = getResources().getDrawable(id);
'id' не будет работать в этом случае. –
Спасибо. Ответ правильный –
Это может быть сделано как это:
ImageView imageView = new ImageView(this);
imageView.setBackground(getResources().getDrawable(getResources().getIdentifier("name","id",getPackageName())));
Спасибо. Ответ тоже верный –
Попробуйте это:
public Bitmap getPic (int number)
{
return
BitmapFactory.decodeResource
(
getResources(), getResourceID("myImage_" + number, "drawable", getApplicationContext())
);
}
protected final static int getResourceID
(final String resName, final String resType, final Context ctx)
{
final int ResourceID =
ctx.getResources().getIdentifier(resName, resType,
ctx.getApplicationInfo().packageName);
if (ResourceID == 0)
{
throw new IllegalArgumentException
(
"No resource string found with name " + resName
);
}
else
{
return ResourceID;
}
}
Спасибо. Я уверен, что это правда, но я не пробовал :) –
int resId = getResources().getIdentifier("your_drawable_name","drawable",YourActivity.this.getPackageName());
Drawable d = YourActivity.this.getResources().getDrawable(resId);
Спасибо. Этот ответ тоже верен –
использование cas е, если не в какой-либо деятельности, используя примеры @FD_
Примечание:
, если вы не в какой-либо деятельности, вы должны отправить контекстные параметры для того, чтобы использовать «GetResources()» или «getPackageName()», и «getDrawable (id)» устарел, вместо этого используйте getDrawer (int id, Theme theme). (Тема может быть пустым):
String name = "your_drawable";
int id = context.getResources().getIdentifier(name, "drawable",
context.getPackageName());
Drawable drawable = context.getResources().getDrawable(id, null);
- 1. Невозможно преобразовать @ drawable/в drawable
- 2. Как преобразовать вид в Drawable
- 3. Как преобразовать непосредственно Drawable Image в Base64 string?
- 4. Как преобразовать байт [] в drawable?
- 5. Не удалось преобразовать @ drawable/в drawable
- 6. Не удалось преобразовать drawable в drawable
- 7. Можно преобразовать String [] = "hello"; в папку Drawable images?
- 8. Convert String to Drawable
- 9. XML Drawable from String
- 10. Drawable from String в Android
- 11. Drawable in string resource
- 12. Как преобразовать объект-файл в drawable
- 13. Как преобразовать растровое изображение в Drawable?
- 14. Как преобразовать Drawable в масштабированный битмап
- 15. Как преобразовать строку url в drawable?
- 16. Как преобразовать в String?
- 17. Не удалось преобразовать цвет в drawable
- 18. Как преобразовать кортеж String в String *?
- 19. Как преобразовать String в String Array
- 20. Как преобразовать dataframe в RDD [String, String]?
- 21. Как преобразовать String в String Array?
- 22. Как преобразовать List (String, String) в ListMap [String, String]?
- 23. «Не удалось преобразовать? Attr/colorPrimary в drawable»
- 24. Не удалось преобразовать true в drawable
- 25. Как преобразовать String в NSDate?
- 26. Как преобразовать PathBuf в String
- 27. Как преобразовать STRING в массив?
- 28. Как преобразовать String в JsonArray?
- 29. Как преобразовать double в String?
- 30. Как преобразовать String^в float?
Должен ли я использовать 'view.setBackground (drawable)' или 'view.setBackgroundResource (id)' или что? –
Я отредактировал свой ответ. –
Большое спасибо. Это работа :) Все ответы верны –