2010-10-07 190 views
0

按钮颜色不应改变

<item android:state_focused="true" > 
    <shape> 
     <gradient 
      android:endColor="#FF9900" 
      android:startColor="#FF9966" 
      android:angle="270" /> 
     <stroke 
      android:width="3dp" 
      android:color="#CCCCCC" /> 
     <corners 
      android:radius="3dp" /> 
     <padding 
      android:left="10dp" 
      android:top="10dp" 
      android:right="10dp" 
      android:bottom="10dp" /> 
    </shape> 
</item> 

    <item>   
    <shape> 
     <gradient 
      android:endColor="#FFFFFF" 
      android:startColor="#FFFFFF" 
      android:angle="270" /> 
     <stroke 
      android:width="1dp" 
      android:color="#666666" /> 
     <corners 
      android:radius="1dp" /> 
     <padding 
      android:left="3dp" 
      android:top="3dp" 
      android:right="3dp" 
      android:bottom="3dp" /> 
    </shape> 
</item> 

以上就是我为填充按钮的边框与黑色的颜色啊同一编写的代码我正在使用3个按钮的代码设置为background.Now,当我点击button1时,红色出现,并在我释放时去。但我希望红色可见,直到我按下一个按钮。尽管按下后我释放Button1,但红色应该可见。但是当我按下任何其他按钮时,红色应该消失。
任何人都可以帮助我解决这个问题吗?
请任何人帮我解决这个问题?
由于事先

+0

为什么不使用'ToggleButton'? – CommonsWare 2010-10-07 19:37:26

回答

0

恐怕你不能完成你的目标。因为,AFAIK没有定义释放后按钮行为的状态(只是正常,集中和按下)。假定正常状态。

但是,你可以做到以下几点:

  • 让我们说,你的原始XML绘制是绘制一个
  • 定义新的XML绘制B,已正常状态定义为希望红色按钮
  • 后用户按下按钮,您将是红色的,因为绘制一个说
  • 当用户释放按钮,确保其通过的绘制

    变化一直显示为红色

    myButton.setBackgroundDrawable(getResources()。getDrawable(R.drawable.B));

  • 当用户按下另一个按钮将其恢复为正常状态通过

    myButton.setBackgroundDrawable(getResources()getDrawable(R.drawable.A)。);

0

尝试只通过XML定义按钮状态添加状态android:state_selected

+0

android:state_selected没有效果。我为此添加了一个单独的标签以及android:state_pressed.Kindly给我任何其他解决方案 – 2010-10-07 20:36:48