如何将android Image Button样式应用于我自己的按钮?

时间:2012-04-13 04:01:24

标签: android

我创建了自己的按钮,它继承了android的RelativeLayout。 我的问题是如何将android'按钮样式(即背景可绘制,填充)应用到我自己的按钮?

谢谢。

4 个答案:

答案 0 :(得分: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... 

答案 1 :(得分:0)

我不完全确定你在问什么。但如果您只是在寻找默认按钮背景,请使用

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

填充可能需要手动完成。

这个link给出了android资源列表。

答案 2 :(得分:0)

为了澄清,为什么要继承创建自定义按钮的相对布局?如果您只需要更改按钮的外观,则可以通过指定选择器drawable来完成。

如果有的话,需要继承RelativeLayout,那么你的代码会更多一些,你需要处理按钮的状态。如果这样做得好,你可以附加一个可绘制的背景选择器,如blessenm所提到的那样。

答案 3 :(得分:0)

我找到了你。您可能希望像this一样实施。另请参阅this例如。

按钮有样式定义,您可以根据需要将该样式用于按钮。

希望这就是你想要的。 如果没有,请告诉我。

享受。 :)