如何在Android中创建此类CheckBox

时间:2014-05-05 14:09:02

标签: android xml checkbox

如何在按下时在android中创建此类checkbox。我试过了 。我可以知道实现目标的正确方法是什么?也许这个问题太基础了,但我找不到合适的解决方案。请帮帮我。

我想创建像这样enter image description here

取消选中后,它将显示为:enter image description here

以下是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>

这是我的输出: enter image description here

1 个答案:

答案 0 :(得分:1)

您需要使用drawable创建一个layer-list,其中两个项目为矩形。一个background,另一个strokemargin

   <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。