如何在按下时在android中创建此类checkbox
。我试过了 。我可以知道实现目标的正确方法是什么?也许这个问题太基础了,但我找不到合适的解决方案。请帮帮我。
我想创建像这样
取消选中后,它将显示为:
以下是checkbox
的XML代码:
<CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:button="@drawable/custom_checkbox"/>
这是custom_checkbox.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true"
android:drawable="@drawable/checked" />
<item android:state_pressed="true"
android:drawable="@drawable/checked" />
<item android:drawable="@drawable/unchecked" />
</selector>
这是checked.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="#54d66A" android:endColor="#54d66A" android:angle="270"/>
<stroke android:width="4px" android:color="#ffc0c0c0" />
<size android:height="20dp" android:width="20dp"/>
</shape>
这是我的输出:
答案 0 :(得分:1)
您需要使用drawable
创建一个layer-list
,其中两个项目为矩形。一个background
,另一个stroke
,margin
。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<gradient android:startColor="#54d66A" android:endColor="#54d66A" android:angle="270"/>
<size android:height="20dp" android:width="20dp"/>
</shape>
</item>
<item android:bottom="2dp" android:left="2dp" android:right="2dp" android:top="2dp">
<shape android:shape="rectangle" >
<stroke android:width="2dp" android:color="#ffc0c0c0" />
</shape>
</item>
</layer-list>
并且,将此drawable设置为state_checked
background。