java - 在 Java 文件而不是 xml 中定义颜色常量

标签 java android android-xml android-color

将颜色定义为 int 常量并静态访问它们,而不是在每次需要它们时从 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 类继承的类的方法和构造函数的需要。

最佳答案

实际上并没有一个明确的约定。


在这种情况下最重要的是

  • 清晰度
  • 表现
  • 可扩展性

如果在您的情况下,此删除声明重复并使您的代码更清晰,而不影响性能,是的,您可以而且必须使用它

但请注意:这不是一般规则,您必须单独分析每个案例并做出明智的决定,对于其他情况,使用 AppColors 类可能会产生重复或性能问题(如果有很多请求)而不是使用数据库表。

关于java - 在 Java 文件而不是 xml 中定义颜色常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32885002/

相关文章:

java - Maven : How to include jars, 在代表 J2EE 项目中不可用?

Android 菜单按钮不显示

Android:如何在手机键盘弹出或下降时动态更改ListView的高度?

android - 在android中为图像添加左边框

java - 从匿名 Java 子类访问 "this"

Java 线程 wait() => 阻塞?

java - 如何在querydsl查询中添加括号?

java - 淡入/淡出 Android ActionBar

java - eclipse 看不到我的 lenovo S650 手机

Android:为按钮添加 NEON 效果