2016-03-03 29 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