保持

时间:2017-12-14 10:11:24

标签: java android xml android-drawable

我试图制作这个音量按钮,根据放入的状态改变抽屉。所以默认情况下,设备的音量将打开,按下时会使设备静音,当它坚持将设备改为仅振动。现在我正试图改变它在振动时的可绘性,但我尝试的任何东西似乎都没有用。我目前在我的XML中有这个代码,我尝试使用压缩状态,但我无法获得可以相应更改drawable的工作。

<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/ic_volume_down_black_24dp"
    android:state_checked="true" />

    <item android:drawable="@drawable/ic_volume_off_black_24dp"
    android:state_checked="false"/>    
</selector>

3 个答案:

答案 0 :(得分:0)

添加此android:state_pressed

<item android:drawable="@drawable/image_you_want_on_press_state"
android:state_pressed="true" />`

希望得到这个帮助。

答案 1 :(得分:0)

我创建了一个新的drawable xml文件,例如image_state.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
    <bitmap android:src="@drawable/image_pressed"/>
</item>
<item>
    <bitmap android:src="@drawable/image"/>
</item>
</selector>

在我的布局文件中,我将imageView的src设置为:

<ImageView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:src="@drawable/image_state"/>

同时检查一下:      Change source image for image view when pressed

答案 2 :(得分:0)

默认可绘制<item android:drawable="@drawable/ic_volume_off_black_24dp"></item>和已按下的st <item android:drawable="@drawable/ic_volume_down_black_24dp" android:state_pressed="true" />

<selector xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="200">
    <item android:drawable="@drawable/ic_volume_down_black_24dp" android:state_activated="true" />
    <item android:drawable="@drawable/ic_volume_down_black_24dp" android:state_pressed="true" />
    <item android:drawable="@drawable/ic_volume_off_black_24dp"></item>
</selector>