我正在尝试与Android的内置辅助功能支持集成,以增强隐藏式字幕。
如果我尝试从全局设置中访问值,则会得到无效的负整数值。例如,
CaptioningManager.CaptionStyle.backgroundColor
返回
-65536
类似地,
CaptioningManager.edgeColor返回
-16777216
这似乎是因为本机实现中的十六进制转换错误。 有没有人遇到类似的问题,如果有的话,如何解决相同的问题?
答案 0 :(得分:1)
在java中,整数应为4个字节,它们代表无符号数。 类似地,每种颜色分别表示为4个字节:Alpha,Red,Green和Blue。这意味着,每个可能的整数值也将是有效的颜色值,即使是负数。
如果检查颜色类,即使预定义的颜色值也会初始化为整数:
public static final int BLACK = 0xFF000000;
public static final int GRAY = 0xFF888888;
public static final int WHITE = 0xFFFFFFFF;
您的价值观是:
-65536 = 0xFFFF0000: RED.
-16777216 = 0xFF000000: BLACK