2016-03-03 32 views
0

我正在尝试与Android内置的辅助功能支持集成以增强隐藏字幕。Android字幕管理器返回无效值

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

CaptioningManager.CaptionStyle.backgroundColor

返回

-65536

同样,

CaptioningManager.edgeColor返回

-16777216

这似乎是因为在本地实现一个十六进制转换错误的。 有没有人遇到类似的问题,如果是的话,如何解决相同的问题?

回答

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