我有一个png按钮,启用,不按下.当用户点击按钮时,我只想使png变暗.我需要这样的东西:
<selector xmlns:android="http://schemas.android.com/apk/res/android" > //normal button with background my_button.png <item android:state_enabled="true" android:drawable="@drawable/my_button" //my_button.png /> //pressed button with background my_button.png overlayed by 50% black <item android:state_pressed="true" android:state_enabled="true" > <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <bitmap android:src="@drawable/my_button"/> <color android:color="#00000088"/> </RelativeLayout> </item> </selector>
有没有办法呢?还是我必须有另一个png文件?
解决方法
在my_button_bg.xml中:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/button_pressed" android:state_pressed="true"/> <item android:drawable="@drawable/button_normal"/> </selector>
button_normal是一个png
button_pressed是一个xml:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/button_normal"/> <item android:drawable="@color/btn_bg_pressed_mask"/> </layer-list>
其中btn_bg_pressed_mask是一种颜色:
<color name="btn_bg_pressed_mask">#19000000</color>