我想使用自定义drawables设置为我的复选框drawable我将其定义如下:
heart_button.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false" android:drawable="@drawable/heart_outline" />
<item android:state_checked="true" android:drawable="@drawable/heart_full" />
<item android:drawable="@drawable/heart_outline" /> <!-- default state -->
</selector>
这里的drawable只是.png文件。但是在布局中我有以下条目:
<CheckBox
android:id="@+id/heartItemCheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="4dp"
android:layout_marginRight="4dp"
android:button="@drawable/favourite_heart_button"
android:contentDescription="@string/heartCheckBoxDesc"
android:focusable="false"/>
我想要实现的是设置CheckBox
的宽度和高度,并使其按钮可绘制以填充它。现在它被裁剪(当我使用太大的.png文件时)或保持小(当我使用lower-resoultion .png时)。
我相信引入了dp
单位以防止各种项目大小取决于手机密度。这是我不想只使用另一种分辨率的图像。
我已经尝试了几种方法来实现我想要的 - 没有成功。我尝试设置android:scaleType="fitCenter"
,android:gravity="center"
,我尝试更改items
中的selector
,以bitmaps
引入android:scaleType="fitCenter"
属性android:background
。似乎有用的是将drawable设置为android:button
属性而不是{{1}}。但我不认为这是正确的方法(它可以使阴影,海拔等方面产生一些问题)。
你如何推荐达到我想要的目标?
答案 0 :(得分:2)
大多数人首选使用android:background like
android:button="@null"
android:background="@drawable/check_box"
如果您想使用按钮,请将图像大小调整为32dp。因为android Material Design建议使用32dp作为复选框。
请参阅链接。可能它会帮助你。