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