重置视图的背景颜色
我试图恢复视图的背景颜色。重置视图的背景颜色
我有几个可选择的视图。当用户点击这些观点的一个,下面的代码被执行,查看变成黄色:
View newSelection, previousSelection;
...
if(previousSelection != null) {
previousSelection.setBackgroundColor(Color.BLACK); // problem here
}
newSelection.setBackgroundColor(Color.YELLOW);
不过,我想重置先前选择查看的颜色。但是,我不知道它是哪种颜色(我在上面的代码中将它设置为Color.BLACK)。我无法在View类中找到getBackgroundColor或类似的方法。如果我有它,我可以保存以前的颜色,并在选择新视图时将其放回原处。
您可以尝试将以前的颜色设置为视图的标记。
例如
View newSelection, previousSelection;
newSelection.setTag(Color.Green);
previousSelection.setTag(Color.Black);
if(previousSelection != null) {
previousSelection.setBackgroundColor((int)previousSelection.getTag());
}
newSelection.setBackgroundColor(Color.YELLOW);
我没有尝试过的代码,如果有一个错误,但是,如何实现流量是存在的。
问题是我不知道视图的原始颜色。 – MyNameIsZero 2010-09-09 18:33:21
你是不是设置视图原始颜色的人? – capecrawler 2010-09-13 00:06:35
我没有设置原始颜色,因为当没有指定颜色时,原始颜色是android使用的默认颜色。 – MyNameIsZero 2010-09-13 16:39:59
use View。 getBackground(),它返回视图的当前'Drawable'背景,然后可以在View中使用它。 setBackgroundDrawable()
View theView;
Drawable originalBackground;
...
originalBackground = theView.getBackground();
theView.setBackgroundColor(Color.YELLOW);
...
theView.setBackgroundDrawable(originalBackground);
请注意,在较新版本的Android中,设置背景颜色可能会改变原始背景ColorDrawable,所以您应该使用'theView.setBackground(new ColorDrawable(Color.YELLOW))'代替 – crizzis 2015-08-07 21:11:32
如果你只是想使用父母的背景,你可以删除整个孩子的背景:view.setBackgroundResource(0); – 2015-01-20 19:25:21