[英]Android toggle button custom look
我一直在尝试自定义切换按钮外观,但没有成功。 这是我希望它看起来像:
有人可以给我一个教程吗?
在res / drawable中创建toggle_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/toggle_on" android:state_checked="true"/>
<item android:drawable="@drawable/toggle_off" android:state_checked="false"/>
</selector>
将选择器应用于切换按钮
<ToggleButton
android:id="@+id/chkState"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/toggle_selector"
android:textOff=""
android:textOn=""/>
注意:删除上面代码中使用的文本
textOff=""
textOn=""
我不知道这是否是最佳解决方案,但对我来说效果很好:
1.-决定切换按钮有多大。 在我的情况下宽度56dp和高度76dp。
2.-为mdpi,84px-113px hdpi创建图标集56px-76px,xhdpi和xxhdpi相同
3.-移动相应可绘制文件夹中的图标。 在我的例子中,每个文件夹中有20个图标5,名为ic_name1_on,ic_name1_off [...] ic_name5_off
4.-在名为drawable的新文件夹中创建以下xml文件(如果它尚不存在):
5.-在ic_name1_toggle.xml中,代码必须是:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="false"
android:drawable="@drawable/ic_name1_off" />
<item
android:state_checked="true"
android:drawable="@drawable/ic_name1_on" />
</selector>
6.-在ic_name1_toggle_bg.xml代码必须是:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+android:id/background"
android:drawable="@android:color/transparent" />
<item android:id="@+android:id/toggle"
android:drawable="@drawable/ic_name1_toggle" />
</layer-list>
7.-最后,在你的layout.xml:
<ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="56dp"
android:layout_height="76dp"
android:background="@android:color/transparent"
android:button="@drawable/ic_name1_toggle_bg"
android:textOff=""
android:textOn="" />
我认为您需要为按钮定义自定义背景。 请参阅开发人员指南,了解自定义按钮的背景 。
但是,在第三步中,在res/drawable/ directory
创建一个新的XML文件使用此Xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_da"
android:state_checked="true" />
<item android:drawable="@drawable/button_nu" />
</selector>
元素android:state_checked="true"
是将该状态定义为选中的背景。
如果这对您有用,请告诉我。
创建选择器
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/btn_da" android:state_checked="true"/>
<item android:drawable="@drawable/btn_nu"/>
</selector>
并将其用作ToggleButton的背景。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.