4

OK、背景としてセレクターを使用するボタンがあります。幅と高さを wrap_content に設定しました。内容は私が設定したテキストです。ボタンはネイティブ ボタンのようにテキストに合わせてサイズ設定されることを期待していますが、ボタンは巨大で、基本的にソース イメージと同じ大きさに見えます。ボタン イメージは 9 パッチ イメージで、ボタン xml は相対レイアウト内にあります。ここで何が欠けていますか?

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/holo_btn" />
        <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/holo_btn" />
        <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/holo_btn" />
        <item android:drawable="@drawable/holo_btn" />
</selector>



<Button android:id="@+id/btnTaskPriorityLow" 
            android:paddingLeft="@dimen/paddingSmallButton" android:paddingRight="@dimen/paddingSmallButton"
            android:text="@string/strTaskPriorityLow"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:layout_below="@id/textViewCalColor"
            android:layout_toRightOf="@+id/textViewPriority"
            android:layout_marginTop="@dimen/marginTopAppt"
            android:background="@drawable/button_holo_sel"/>
4

2 に答える 2

12

背景として巨大な 9-Patch があることを理解しています。

私の知る限り、9-Patch は拡張できますが、縮小することはできません。したがって、おそらく 9-Patch を編集してできるだけ小さくする必要があります。通常、中心の伸縮可能領域を 1 ピクセルに減らすことができます。

于 2013-01-19T13:12:01.567 に答える
0

ここでは、ボタンの layout_width をラップコンテンツとして宣言しているため、背景に設定した画像として幅が使用されます。

wrap_content

ビューのサイズを wrap_content に設定すると、ビューに含まれる値 (または子コントロール) を含めるのに十分な範囲だけ拡張されます。テキスト ボックス (TextView) や画像 (ImageView) などのコントロールの場合、表示されているテキストまたは画像がラップされます。レイアウト要素の場合、子として追加されたコントロール/レイアウトに合わせてレイアウトのサイズを変更します。

この問題を解決するには、背景に常に 9 つのパッチ イメージを使用するか、dp で layout_width を変更します。(例: 100 dp)

于 2013-01-19T12:57:07.600 に答える