android – 由png和overlay组成的XML drawable

前端之家收集整理的这篇文章主要介绍了android – 由png和overlay组成的XML drawable前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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>
原文链接:https://www.f2er.com/android/313130.html

猜你在找的Android相关文章