1
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical"
android:padding="6dp"
android:weightSum="1.0" >

<Button
    android:id="@+id/btnCreateNewMonth"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center_vertical|center"
    android:layout_weight="0.5"
    android:onClick="btnCreateNewMonth_clickHandler"
    android:paddingBottom="5dp"
    android:text="@string/btn_create_new_month" />

<Button
    android:id="@+id/btnLoadExistingMonth"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center_vertical|center"
    android:layout_weight="0.5"
    android:onClick="btnLoadExistingMonth_clickHandler"
    android:text="@string/btn_load_existing_month" />

   </LinearLayout>

パディングはすべての辺で 6 dp にする必要があります。しかし、上部には、アプリのタイトルとレイアウトの間に小さなパディングがあります?! その解決策は何ですか??

ありがとう。

4

1 に答える 1

1

問題はパディングではなく、

レイアウトを深く見ると、ボタン占有面積とレイアウト面積の違いがわかります。

  1. ボタンの背景ソースが、右、左、下の隅のスペースを完全に占めていません。

  2. しかし、ボタンの背景ソースはカバーされており、上部が完全に占められています。

  3. Button の Background ソースは、背景が透明な 9 パッチ画像であることに注意してください。

  4. この場合、たとえば、ボタンの背景ソースによって占められていないギャップが 2dp である場合、

    Right 、 Left 、 Bottom には、余分な 2 dp のスペースがあります。しかし、トップではありません。

    したがって、6 dp のパディングを使用すると、右、左、下の隅にある両方のボタンで 2 dp の追加の背景可視性が得られます。

したがって、パディング値が 6dp の場合、レイアウトの背景の可視性は、右、左、下隅で 8dp、上部で 6dp になります。

これが実際の問題です。

  1. ボタンの背景色を変更すると、4 つの隅すべてのパディング値が均等になることがわかります。

  2. ボタンの画像の背景を作成する場合は、Android のデフォルトのボタンの背景とは異なり、同じように作成する必要があります。

解決策は、ボタンのグラデーションの背景を作成するか、ボタンの新しい画像ファイルを作成することです。

あなたがそれを手に入れて、それがあなたにとって役立つヒントになることを願っています。

于 2012-11-02T13:45:52.550 に答える