我正在尝试还原视图的背景色。
我有几个可选择的视图。当用户单击其中一个视图时,将执行以下代码,该视图将变为黄色:

View newSelection, previousSelection;

...

if(previousSelection != null) {
    previousSelection.setBackgroundColor(Color.BLACK); // problem here
}
newSelection.setBackgroundColor(Color.YELLOW);

但是,我想重置先前选定视图的颜色。但是,我不知道它是哪种颜色(我在上面的代码中将它设置为color.black)。我在view类中找不到getbackgroundcolor或类似的方法。如果我有它,我可以保存以前的颜色,只是把它放回新的视图时选择。

最佳答案

使用view.getbackground(),它返回视图的当前“可绘制”背景,然后可以在view.setBackgroundDrawable()中使用该背景

View theView;
Drawable originalBackground;

...

originalBackground = theView.getBackground();

theView.setBackgroundColor(Color.YELLOW);

...
theView.setBackgroundDrawable(originalBackground);

07-28 03:54