0

我正在尝试与 Android 的内置辅助功能支持集成以增强隐藏式字幕。

如果我尝试访问全局设置中的值,我会得到无效的负整数值。例如,

CaptioningManager.CaptionStyle.backgroundColor

返回

-65536

相似地,

CaptioningManager.edgeColor 返回

-16777216

这似乎是因为本机实现中的十六进制转换错误。有没有人遇到过类似的问题,如果有,如何解决?

4

1 回答 1

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
于 2016-06-09T22:17:12.507 回答