我有一个名为ColorConstants
的类,该类只是定义了整个应用程序中使用的许多public static final Color
字段的类-可以轻松更改配色方案等。我想做的就是有两种方案:反转,不-倒。我想设置此类,以便根据方案/主题,相同的字段名称可以引用不同的颜色。而不是每次检查/获取必要的颜色。
我以前从未使用过enum
,只是想知道它是否适合于此?
另外,我只是将字段设为非最终字段,并使用setAll(int theme)
方法。
最佳答案
我不会在这里使用枚举。
我将创建一个包含所有颜色字段(非最终值)但没有值的类。并创建在构造函数中定义所有颜色的扩展类。
public abstract class ColorScheme
{
public Color background;
public Color foreground;
public Color cursor;
}
现在创建ColorScheme的实现:
public class DarkColorScheme extends ColorScheme
{
public DarkColorScheme()
{
background = new Color(0x111111);
foreground = new Color(0xDDDDDD);
cursor = new Color(0xEEEEEE);
}
}
现在,您可以使用如下的配色方案:
public ColorScheme colorScheme = new DarkColorScheme();
从现在开始,您可以创建额外的配色方案,并只需在新的配色方案上方的行中使用,一切都应该可以动态运行。