1

9パッチ画像を背景にしたボタンを作成しました。9patch画像では、下と右の行を使用してコンテンツ領域/パディングを指定し、ボタンにテキストを配置しました。これはTextViewでうまく機能しますが、Buttonでは、コンテンツ行はテキストの位置に影響を与えないようです。「paddingTop」/「paddingBottom」を設定しても効果がないようです。「padding」のみが効果を発揮します。

これは私のレイアウトXMLです:

<Button 
            android:layout_width="450dp"
            android:layout_height="198dp"
            android:text="Some text here"
            android:gravity="center"
            android:background="@drawable/my_button"/>

パディングを設定する方法はありますか?ボタンの代わりに別のビューを使用できるかもしれませんか?たとえば、TextViewを使用してクリック可能にすることはできますが、これが他にどのような副作用をもたらすかはわかりません。

4

2 に答える 2

3

明示的に設定するandroid:padding="@null"と、問題が解決しました。

paddingTop問題は、ボタン (または私が使用しているテーマのスタイルの 1 つ) がパディングを設定しているように見えました。これは、ボタンの他​​のすべてのパディングをオーバーライドしますpaddingLeft

ボタンのレイアウトは次のように定義されています。

<Button 
        android:layout_width="450dp"
        android:layout_height="198dp"
        android:text="Some text here"
        android:gravity="center"
        android:padding="@null"
        android:background="@drawable/my_button"/>

私のIDE(IntelliJ IDEA 11.1)は@null、コンパイルされたにもかかわらず、エラーとして検出しました。に設定して-1pxも機能しました。

于 2012-04-04T11:34:39.503 に答える
1

9 パッチ イメージを背景として使用する場合、パディングと引き伸ばされた領域の両方が背景で定義されます。

draw9patch ツールを使用すると、非常にグラフィックになります。パディングは、コンテンツ領域 (右と下の行) で (間接的に) 定義されます: http://developer.android.com/guide/developing/tools/draw9patch.html

于 2012-04-04T10:47:20.550 に答える