Есть ли какие-либо подводные камни для определения цветов как постоянные константы, так и их статические элементы, потянув их от xml
каждый раз, когда они требуются?Определение цветовых констант в файле Java, а не xml
Например, скажем, я определяю класс под названием AppColors
:
public final class AppColors {
private AppColors() { throw new AssertionError(); }
public static final int COLOR_RED_500 = 0xFFF44336;
}
И доступ цвета с AppColors.COLOR_RED_500
, в то время как обычный маршрут getResources().getColor(R.color.red_500)
.
Помимо того, что цвет, вероятно, необходимо будет определить дважды, один раз в xml
для макета/тем и снова в коде, определение цветов таким образом будет иметь то преимущество, что не требует повторных вызовов getResources()
и необходимости передать Context
аргументы методам и конструкторам классов, которые не наследуются от класса Context
.
Фактически изготовление вызов 'getResources()' требует 'context' конкретного класса, поэтому, возможно, обращение к цвету с помощью' getresources(). getColor() 'немного тяжело, чем доступ к нему как' YourColorClass.colorName', но время или ресурсы, было бы незначительным. – Apurva