2017-04-08 90 views
0

我想突出顯示一個CheckBox,方法是將自定義顏色設置爲其背景,然後將該顏色淡入任何原始背景顏色中。如何獲取CheckBox背景顏色

問題是我不知道如何獲取ValueAnimator的「colorTo」。 CheckBox甚至有可以稱爲背景的東西嗎?或者它僅僅是一個刻度框旁邊的文本?

該複選框在運行時創建,即通過調用其構造函數。我只設置它的文本和onClick處理程序,我沒有設置它的bg。

回答

2

是的,它有一個背景。由於您在運行時創建背景,因此背景未設置爲透明(除非在樣式中另行定義)。

要高亮按鈕隨時可以從突出顏色背景顏色設置所需的高亮顏色和動畫的顏色或簡單地以動畫來透明顏色 - >「#00000000」

PS:你可能不會需要這個,但得到view的背景顏色,你可以這樣做:

int color; 
Drawable background = view.getBackground().mutate(); 

if (background instanceof ColorDrawable) { 
    color = ((ColorDrawable)view.getBackground()).getColor(); 
} 

mutate()會克隆你的BAC kground,所以如果你在多個地方使用這個背景,隨着背景的變化,其他背景不會改變。

+0

我會測試這個並回來接受答案。同時謝謝! –

+0

它適合你嗎?雖然它只適用於將顏色設置爲背景的情況,但如果您聲明背景類型,我也可以建議其他解決方案^^ –

+0

事實上,我已經認識到有一個問題。我根本沒有設置我的BG,這可能是爲什麼顏色是黑色的。該複選框是在運行時創建的,即通​​過調用其構造函數創建,並且我只設置onClick處理程序和文本。 –