2013-07-10 3 views
3

У меня есть пользовательский класс Resources, где можно установить цвет, который переопределит те, которые определены в res/values ​​/ colors. Каждое действие переопределяет метод getResources() для возврата моего пользовательского ресурса-объекта. Если я получаю цвета программно (в java-вызове getResources().getColor(R.color.xxx)) все работает так, как ожидалось. Проблема заключается в файле xml-layout. Если я определяю цвет там (например, используя textColor="@color/xxx"), он всегда будет использовать тот, который находится в /res/values/colors.xml, а НЕ мои переопределенные. Есть ли способ изменить это поведение, что при раздувании из XML мой объект пользовательских ресурсов используется?переопределить `getResources()` из контекста для работы в xml

+0

Одним из способов может быть размещение пользовательских значений цвета внутри 'color.xml '. Затем вы можете получить к нему доступ из файла Java, а также для файла xml. –

+0

Никто не может добавлять цвета в colors.xml на RUNTIME !!! –

+0

Да Сэр. Согласен. Я думаю, вы меня неправильно поняли. Я просто предлагаю, чтобы вместо переопределения цветов по умолчанию, почему бы вам не добавить свои пользовательские цвета в XML-файл (НЕ во время выполнения) другим именем, а затем использовать его вместо этого. Я пытаюсь просто получить ваш случай использования и нуждаюсь в том же. –

ответ

1

После того, как я не смог найти фактическую реализацию AttributeSet, я понял, что вся идея была неправильной. Я предполагаю, что, поскольку ресурсы предварительно скомпилированы, они не получены таким же образом, используя класс Resources. Решением является сама система сборки. Пчела библиотеки Ресурсы имеют более низкий приоритет, чем приложение, которое его использует. Поэтому приложение, использующее мою библиотеку, может как-то переопределить библиотечные ресурсы, указав собственные, используя одно и то же имя в свой color.xml.

 Смежные вопросы

  • Нет связанных вопросов^_^