我有一个在drawable中定义背景的布局,我想在某些条件下将其更改为另一个。如何获取当前背景的标识符以知道它是什么?
问问题
5692 次
4 回答
12
这可能是一个非常古老的问题,但以防万一人们仍在寻找它:
if(yourView.getBackground().getConstantState().equals(
getResources().getDrawable(R.drawable.yourdrawable).getConstantState()){
//do something if this is the correct drawable
}
提醒检查是否为空。在某些情况下,yourView.getBackground()
如果源是矢量可绘制的,则可以返回 null。
于 2016-08-30T04:51:36.713 回答
3
嗨,你可以试试这个例子,
btnNew =(Button)findViewById(R.id.newButton);
// compare newlist
if(newButton.getBackground()!=(findViewById(R.id.imgAdd)).getBackground())
{
btnNew.setBackgroundResource(R.drawable.imgDelete);
}
于 2012-11-29T08:20:26.467 回答
1
你可以通过这种方式尝试。
将 id 分配给要根据条件更改背景的布局。并这样做
linear1 = (LinearLayout) findViewById(R.id.bg_l_l);
if(condition==true)
{
linear1.setBackgroundDrawable(R.drawable.sample_thumb_0);
}
else if (condition2==true)
{
linear1.setBackgroundDrawable(R.drawable.sample_thumb_1);
}
else
{
linear1.setBackgroundDrawable(R.drawable.sample_thumb_2);
}
于 2012-11-29T08:25:43.770 回答
1
Drawable
你可以简单地得到整个Drawable beforeClickDrawalbe=view.getBackground();
并通过执行以下操作更改视图的背景:view.setBackgroundDrawable(getResources().getDrawable(R.drawable.YOUR_DRAWABLE));
然后,如果您想将其设置回初始背景,则不需要 id,因为您拥有整个 Drawable,因此请执行以下操作:
view.setBackgroundDrawable(beforeClickDrawalbe));
就这样!
于 2013-03-17T10:46:33.113 回答