自定义复选框的大小可绘制?

时间:2015-11-18 05:31:28

标签: android android-layout android-xml

我创建了一个自定义复选框drawable:

<selector  xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_checked="false"
        android:drawable="@drawable/ic_checkbox_unchecked" />
    <item
        android:state_checked="true"
        android:drawable="@drawable/ic_checkbox_checked" />
    <item
        android:drawable="@drawable/ic_checkbox_unchecked" />
</selector>

我使用的是这样的:

<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_centerVertical="true"
    android:button="@drawable/checkbox"
    />

我创建了两个可绘制的图像(一个用于未选中,一个用于检查),每个尺寸一个(xxxhdpixxhdpi等)。

然而,我的复选框是这样的:

enter image description here

它为什么这么大?如何将其缩小到20x20dp?

2 个答案:

答案 0 :(得分:5)

而不是wrapcontent尝试

<CheckBox
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:button="@drawable/checkbox"
/>

<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:button="@drawable/checkbox"
android:scaleX="0.40"
android:scaleY="0.40"
/>

更改比例值,直到达到所需的size

答案 1 :(得分:0)

您可以使用xml创建此类复选框,然后获得所需的结果。

将另一个布局文件名设为ic_checkbox_unchecked,并将此文件设置为可绘制的图像。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<corners
android:topLeftRadius="0dp"
android:topRightRadius="0dp"
android:bottomLeftRadius="0dp"
android:bottomRightRadius="0dp"
/>
<solid
android:color="#FFFFFC"
/>

<size
android:width="25dp"
android:height="25dp"
/>
<stroke
android:width="3dp"
android:color="#236C87"
/>

您可以使用<size />标记来调整宽度和高度。 您也可以使用<stroke />标记更改边框宽度。