Android layer-list 布局实现多颜色按钮

原文地址为: Android layer-list 布局实现多颜色按钮

layer-list可以将多个图片或者效果按照顺序叠加在一起。

例如当有多套主题色时,在只需要一套默认黑色的图片资源时,对应的配置多个layer-list文件就可以实现多套主题控件。


<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:top="4dp"
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:gravity="center_vertical">
<selector>
<item android:state_enabled="false">
<nine-patch
android:src="@drawable/btn_emphasis_disable"
android:tint="@color/btn_disable_brandcolor" />
</item>
<item >
<nine-patch
android:src="@drawable/btn_emphasis_normal"
android:tint="@color/btn_nomal_brandcolor" />
</item>
</selector>
</item>
<item
android:top="4dp"
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:gravity="center_vertical">
<selector>
<item
android:state_enabled="false"
android:drawable="@drawable/btn_emphasis_disable_boundary"
android:tint="@color/btn_disable_brandcolor"/>
<item
android:drawable="@drawable/btn_emphasis_normal_boundary"
android:tint="@color/btn_nomal_brandcolor"/>
</selector>
</item>

<item
android:top="4dp"
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:gravity="center_vertical">
<selector>
<item android:state_window_focused="false"
android:drawable="@color/transparent"/>

<item android:state_pressed="true"
android:drawable="@drawable/btn_emphasis_press"
android:tint="@color/btn_pressed_brandcolor"/>
<item android:state_focused="true"
android:drawable="@drawable/btn_emphasis_press" />
<item
android:drawable="@color/transparent" />
</selector>
</item>

</layer-list>
当需要多种颜色的控件时,通过配置tint属性,可以将默认颜色的控件染色为自己需要的控件色值,这样就尽量少的集成图片资源,减小apk大小。




转载请注明本文地址: Android layer-list 布局实现多颜色按钮

猜你喜欢

转载自blog.csdn.net/wangchaoqi1985/article/details/80983699