<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>
以上是我用黑色填充Button边框的代码。我通过设置为background来使用3个按钮的相同代码。现在,当我点击button1时,红色会出现,当我发布时会出现。但我希望红色可见,直到我按下一个按钮。虽然我按下后会释放Button1,但应该可以看到红色。但是当我按下任何其他按钮时,红色应该只会消失。
任何人都可以帮我解决这个问题吗?
请有人帮我解决这个问题吗?
在此先感谢,
答案 0 :(得分:0)
尝试为android:state_selected
答案 1 :(得分:0)
我担心你无法通过定义按钮状态的xml来完成你的目标。因为,AFAIK没有定义按钮行为的状态(正常,聚焦和按下)。假设正常状态。
但是,您可以执行以下操作:
当用户释放按钮时,确保通过更改可绘制
使其保持红色myButton.setBackgroundDrawable(getResources()getDrawable(R.drawable.B));
当用户按下另一个按钮时,通过
将其恢复为正常状态myButton.setBackgroundDrawable(getResources()getDrawable(R.drawable.A));