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つある場合、最初のビューはチェックされておらず、もう1つはチェックされています。次のようになります。

ここに画像の説明を入力してください

チェックされていない状態の境界線は、チェックされている状態に比べて広いことがわかります。私のリソースによると、これらの境界線は同じ幅ですが、オレンジ色のチェックマークを描画するために余分なピクセルが必要なため、チェックされたリソースはより広くなっています。

境界線を同じように見せるためにどうすればよいですか?RelativeLayout + TextView +チェックボックスを使用するよりも効率的な方法はありますか?


更新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

2 つの画像を同じ幅にする必要があります。あなたが言及した質問では、境界線は同じ幅です。透明なピクセルを追加して、チェックされていない画像を単純に広くすると、すべてが機能するはずです。

要約すると、同じサイズで同じ位置の境界線を持つ同じサイズの 2 つの画像が必要です。

Android Source も同じことを行います。次の 2 つのチェックボックス イメージを見てください: それらは同じサイズです (github サイトでより見やすく:チェックされていないチェックされている)

チェック済み 未検査

于 2013-01-16T10:18:58.510 に答える