2017-04-08 89 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处理程序和文本。 –