我有一个带有状态列表drawable和我自己的图形(这是游戏)的复选框。内置的复选框图形显然是72x72,我的图形高72,但只有27宽。
我的main.xml布局的片段:
<CheckBox android:id="@+id/r_diff"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/reset"
android:layout_alignParentBottom="true"
android:onClick="onClickRDiff"
android:button="@drawable/console_select_switch" />
这是我的console_select_switch.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector android:constantSize="true"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/consw_cntr" /> <!-- pressed -->
<item android:state_checked="true"
android:drawable="@drawable/consw_down" /> <!-- checked -->
<item android:drawable="@drawable/consw_up" /> <!-- default -->
</selector>
现在,当我运行程序时,我的图形会显示出来,并且它们可以正常工作,但它们占用的宽度与原始方形72像素图形的宽度相同。我甚至尝试过设置
android:width="27px"
在选择器项目语句中,也没有效果。我甚至尝试将constantSize变为'false',但这没有效果。
我不清楚我做错了什么 - 我的理解是wrap_content应该使它''需要的范围',所以我认为它会起作用。有趣的是,当我在常规按钮中使用一些与android:background相同的图形时,它工作正常。
编辑:我项目的API级别设置为7(Android 2.1),如果它有任何相关性(查看文档,我认为我使用的所有内容已经存在很长时间了,所以我对此表示怀疑。)
编辑:我刚刚在这个控件上设置了文本(我尝试了各种值,包括android:text参数的空字符串),文本正在绘制到复选框正在消耗的区域的右侧(不是实际上由图形占据的区域)。很明显有人认为这个复选框是72像素宽,当它真的是27时。
答案 0 :(得分:0)
android:background="@drawable/my_background"
到布局中的复选框定义。