Динамически изменить имя файла ресурса, который будет использоваться?

1

Можно сделать что-то вроде:

if (colorScheme == 1)
    button.setBackgroundResource(R.drawable.button + "_1")

чтобы использовать R.drawable.button_1 в качестве ресурса для этой кнопки в цветовой схеме 1, если в папке с рисунком имеются файлы с именем button_1.png, button_2.png, button_3.png. (динамически использовать другой файл ресурсов для одного и того же элемента пользовательского интерфейса на основе используемой цветовой схемы?)

Благодаря,

Теги:
android-ui

3 ответа

2
Лучший ответ

Я сделал что-то simular, используя getIdentifier():

int resId = context.getResources().getIdentifier("button_1","drawable",context.getPackageName());
button.setBackgroundResource(resId);
  • 0
    Это отличная идея! Но знаете ли вы, как я могу сделать то же самое в файле XML?
1

Для того, чтобы он был динамичным, потребуется некоторый код. Вы можете настроить свой макет в xml. Например:

<Button 
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button" />

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

int resId = context.getResources().getIdentifier("button_1","drawable",context.getPackageName());
Button button = (Button view.findViewById(R.id.button1);
button.setBackgroundResource(resId);

Я не тестировал это, но это должно дать вам эту идею.

0

Поместите R.drawable.button_n в массив int res[] а затем вызовите их button.setBackgroundResource(res[i])

Ещё вопросы

Сообщество Overcoder
Наверх
Меню