2

AndroidのRelativeLayoutを継承する独自のボタンを作成しました。私の質問は、Androidのボタンスタイル(つまり、背景の描画可能、パディング)を自分のボタンにどのように適用できるかということです。

ありがとうございました。

4

4 に答える 4

2
in your drawable folder - create this xml say custom_button.xml

<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true" >
            <shape>
                <solid
                    android:color="#E77A26" />
                <stroke
                    android:width="1dp"
                    android:color="#E77A26" />
                <corners
                    android:radius="3dp" />
                <padding
                    android:left="10dp"
                    android:top="10dp"
                    android:right="10dp"
                    android:bottom="10dp" />
            </shape>
        </item>
        <item>
            <shape>
                <gradient
                    android:startColor="#70c656"
                    android:endColor="#53933f"
                    android:angle="270" />
                <stroke
                    android:width="1dp"
                    android:color="#53933f" />
                <corners
                    android:radius="4dp" />
                <padding
                    android:left="10dp"
                    android:top="10dp"
                    android:right="10dp"
                    android:bottom="10dp" />
            </shape>
        </item>
    </selector>

And in your main layout - 

     <Button
            android:id="@+id/connect"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:background="@drawable/custom_button"
            android:layout_marginRight="10dp"
            android:text="@string/connect" />

if you want to put styles to your text in that button - add a style resource in your strings.xml - like below

    <style name="buttonText">
            <item name="android:layout_width">fill_parent</item>
            <item name="android:layout_height">wrap_content</item>
            <item name="android:textColor">#ffffff</item>
            <item name="android:gravity">center</item>
            <item name="android:textSize">15dp</item>
            <item name="android:textStyle">bold</item>
            <item name="android:shadowColor">#000000</item>
            <item name="android:shadowDx">1</item>
            <item name="android:shadowDy">1</item>
            <item name="android:shadowRadius">2</item>
        </style>

You can use this style in your button as below, 

    style="@style/buttonText"

Thats it... 
于 2012-04-13T04:41:31.513 に答える
0

あなたが何を求めているのか完全にはわかりません。ただし、デフォルトのボタンの背景を探している場合は、

android:background="@android:drawable/btn_default_normal"

パディングは手動で行う必要がある場合があります。

このリンクは、Androidリソースのリストを提供します。

于 2012-04-13T04:24:44.650 に答える
0

明確にするために、カスタムボタンを作成するために相対レイアウトを継承するのはなぜですか?ボタンの外観を変更する必要がある場合は、セレクタードローアブルを指定することで変更できます。

仮に、RelativeLayoutを継承する必要がある場合、コードはもう少し多くなり、ボタンの状態を処理する必要があります。それが適切に行われている場合は、blessenmが述べているように描画可能な背景セレクターをアタッチできます。

于 2012-04-13T04:25:52.133 に答える
0

私があなたを手に入れたように。あなたはこのように実装したいかもしれません。例については、こちらも参照してください。

ボタンにはスタイル定義があり、いつでもそのスタイルをボタンに使用できます。

それがあなたが望むものであることを願っています。そうでない場合は、私に知らせてください。

楽しみ。:)

于 2012-04-13T04:30:15.653 に答える