我有一个布局,其背景在drawable中定义,我想在某些条件下将其更改为另一个。如何获取当前背景的标识符以了解它是什么?
答案 0 :(得分:8)
这可能是一个非常古老的问题,但万一人们还在寻找它:
if(yourView.getBackground().getConstantState().equals(
getResources().getDrawable(R.drawable.yourdrawable).getConstantState()){
//do something if this is the correct drawable
}
答案 1 :(得分:3)
您好,您可以尝试这个例子,
btnNew =(Button)findViewById(R.id.newButton);
// compare newlist
if(newButton.getBackground()!=(findViewById(R.id.imgAdd)).getBackground())
{
btnNew.setBackgroundResource(R.drawable.imgDelete);
}
答案 2 :(得分: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);
}
答案 3 :(得分:1)
您可以简单地通过Drawable
Drawable beforeClickDrawalbe=view.getBackground();
并通过执行以下操作更改视图背景:view.setBackgroundDrawable(getResources().getDrawable(R.drawable.YOUR_DRAWABLE));
然后如果要将其设置回初始背景,则不需要id
因为你有整个Drawable所以这样做:
view.setBackgroundDrawable(beforeClickDrawalbe));
这就是全部!