19

メインメニューのボタンの背景画像をパディングしようとしています(さまざまな状態のセレクターを使用しています)、この方法で実行しています(buttoninicio_custom.xml):

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

            <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />

    </item>
    <item android:drawable="@drawable/botoninicial_pressed"
          android:state_focused="true">

            <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />

    </item>
    <item android:drawable="@drawable/botoninicial">
            <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
    </item>
</selector>

..しかし、パディングは効果がありません。この問題を解決するにはどうすればよいですか??

各「アイテム」タグ内に「ビットマップ」タグを使用し、内部にパディングを入れましたが、それでも何もしません!!!

私のメインボタンはこのように見えます:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/button2"
        android:layout_width="180dp"
        android:layout_height="50dp"
        android:layout_marginBottom="15dp"
        android:textSize="16sp"
        android:textColor="#FFFFFF"
        android:background="@drawable/buttoninicio_custom"
        android:text="@string/idmMENU2" />
</LinearLayout>

「「ボタン」タグ内に android:padding を設定すると、背景画像ではなくテキストがパディングされるため...問題は、メインボタンを押したときです:画像の背景は正しく変更されますが、新しい画像は切り取られて表示されます. "

4

2 に答える 2

63

でラップしますlayer-list

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:bottom="3dp"
        android:left="3dp"
        android:right="3dp"
        android:top="1dp">

        <selector xmlns:android="http://schemas.android.com/apk/res/android">
            <!-- your original selector content -->
        </selector>
    </item>
</layer-list>
于 2015-12-11T13:55:49.037 に答える
10

タグitemの下ではpadding属性は役に立ちません。ctrl+space(autocomplete) を押すと、android はこのタグの使用を提案しませんが、android はエラーを出しません。シェイプ ドローアブルを作成するときに、パディングを定義できます。次のようなものです。

<item android:state_pressed="true">
    <shape >
        <solid
            android:color="#2c68e7" />
        <stroke 
            android:width="1dp"
            android:color="#2c68e7" />
        <corners
            android:radius="4dp" />
        <padding
            android:left="10dp"
            android:right="10dp"
            android:top="10dp"
            android:bottom="10dp" />
    </shape>
</item> 

ただし、シェイプ ドローアブルで画像リソースを使用することはできません。

より良い解決策は、ビューに同じサイズと寸法の画像を使用することです。

于 2012-09-03T12:44:13.693 に答える