获取视图的当前背景ID

时间:2012-11-29 08:13:34

标签: android android-layout drawable

我有一个布局,其背景在drawable中定义,我想在某些条件下将其更改为另一个。如何获取当前背景的标识符以了解它是什么?

4 个答案:

答案 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));

这就是全部!