我正在尝试与 Android 的内置辅助功能支持集成以增强隐藏式字幕。
如果我尝试访问全局设置中的值,我会得到无效的负整数值。例如,
CaptioningManager.CaptionStyle.backgroundColor
返回
-65536
相似地,
CaptioningManager.edgeColor 返回
-16777216
这似乎是因为本机实现中的十六进制转换错误。有没有人遇到过类似的问题,如果有,如何解决?
我正在尝试与 Android 的内置辅助功能支持集成以增强隐藏式字幕。
如果我尝试访问全局设置中的值,我会得到无效的负整数值。例如,
CaptioningManager.CaptionStyle.backgroundColor
返回
-65536
相似地,
CaptioningManager.edgeColor 返回
-16777216
这似乎是因为本机实现中的十六进制转换错误。有没有人遇到过类似的问题,如果有,如何解决?
在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