2017-04-14 66 views
0

我正在尝试制作一个自定义按钮,该按钮的行为与Android中的“按下按钮”具有相同的背景图像。如何模仿Android中按下按钮的行为?

按下更改我的按钮的图像(颜色较暗),但我似乎无法得到正确的焦点/集中&按状态。 当您在默认按钮上松开手指时,会有一个圆圈填满整个按钮,但它不会发生在我的身上。

这是我的代码:

<?xml version="1.0" encoding="utf-8"?> 
 

 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
 

 
    <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/fertig_focussed" /> 
 
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/fertig_focussed_pressed" /> 
 
    <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/fertig_pressed"/> 
 
    <item android:drawable="@drawable/fertig_regular" /> 
 

 
</selector>

提前感谢!

+0

正在使用的圆圈是['RippleDrawable'](https://developer.android.com/reference/android/graphics/drawable/RippleDrawable.html),而不是'StateListDrawable'。 'RippleDrawable'仅适用于API 21+。 –

+0

这就是我正在寻找的,谢谢!不幸的是, API不适用于我,是否有一种方法可以实现它仅适用于21+以上的设备? – lukelle

+0

嗯,你可以在res/drawable文件夹中有一个默认的StateListDrawable。然后,您可以在res/drawable-v21中使用RippleDtawable,这将在API 21+上使用。 –

回答

-1

这是因为android检查顺序中的统计信息并获得匹配的第一个。

您需要先按住“按下”按钮,然后按住第二个按钮,然后重点对焦。

+0

因为所有的州都指定了压力和重点属性,所以没有比赛。 –

+0

感谢您的快速回复!虽然你说得对,这是重要的顺序,我试过你的组合和其他几个,没有人会让我得到我想要的结果... – lukelle

+0

你是对的,但我不确定你可以按下按钮,但不能确定把重点放在它上面。因此交换订单可以解决问题。 – Feuby