1

我有 CheckedTextView 选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@drawable/checkbox_checked" android:state_checked="true"/>
<item android:drawable="@drawable/checkbox_unchecked" android:state_checked="false"/>

</selector>

当我有 2 个这样的已检查文本视图时,第一个未选中,另一个已选中,它看起来像这样:

在此处输入图像描述

您可以注意到,与选中状态相比,未选中状态下的边框更宽。根据我的资源,这些边框具有相同的宽度,但由于绘制橙色复选标记需要额外的像素,因此选中的资源更宽。

如何使边框看起来一样?有没有比使用 RelativeLayout + TextView + Checkbox 更有效的方法?


更新1,布局:

    <CheckedTextView
        android:id="@+id/saveVideoOnServer"
        style="@style/talCell.textView.checked"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/saveVideoOnServer" />
        android:background="@android:color/transparent"

    <CheckedTextView
        android:id="@+id/showMyPosition"
        style="@style/talCell.textView.checked"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="@string/showMyPosition" />

它们在垂直线性布局内。我没有发布整个布局,因为它有 100 多行。

4

1 回答 1

3

您需要使两个图像具有相同的宽度。在您提到的问题中,边框的宽度相同。如果您现在只是通过添加透明像素来使未检查的图像更宽,那么一切都应该有效。

总结一下:您需要两个相同大小的图像,具有相同的大小和相同的位置边框。

Android Source 也是如此,看看以下两个复选框图像:它们具有相同的大小(在 github 站点上更容易看到:未选中选中

检查 未检查

于 2013-01-16T10:18:58.510 回答