Android按钮资产

时间:2014-09-04 13:47:25

标签: android android-layout

在为Android开发时,我遇到的一个常见问题是按钮资产。

问题:UI设计师需要特定的按钮外观(通常只是与标准Android Holo按钮不同的颜色)。

我该如何做到这一点?我只是不知道正确的方法......

我应该

a)使用HEX颜色代码创建按钮并具有形状/选择器

b)让UI设计师为我所选择的状态下的按钮和drawables删除了drawables吗?

2 个答案:

答案 0 :(得分:2)

如果您可以使用原生绘图(形状,渐变,圆形边框等)设置按钮的样式,那么请执行此操作,否则您将需要使用9-patch drawable。

答案 1 :(得分:0)

在drawable文件夹中,创建一个名为custom_button.xml

的xml文件
<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true" >
        <shape>
            <gradient
                android:startColor="@color/actionButtonColor2"
                android:endColor="@color/actionButtonColor1"
                android:angle="270" />
            <stroke
                android:width="2dp"
                android:color="@color/activeBorder" />
            <corners
                android:radius="5dp" />
        </shape>
    </item>

    <item android:state_focused="true" >
        <shape>
            <gradient
                android:startColor="@color/actionButtonColor1"
                android:endColor="@color/actionButtonColor2"
                android:angle="270" />
            <stroke
                android:width="2dp"
                android:color="@color/highlightBorder" />
            <corners
                android:radius="5dp" />
        </shape>
    </item>

    <item android:state_enabled="false">
        <shape>
            <gradient
                android:startColor="@color/disabledStartColor"
                android:endColor="@color/disabledEndColor"
                android:angle="270" />
            <stroke
                android:width="2dp"
                android:color="@color/inactiveBorder" />
            <corners
                android:radius="5dp" />
        </shape>
    </item>

    <item>
        <shape>
            <gradient
                android:startColor="@color/actionButtonColor1"
                android:endColor="@color/actionButtonColor2"
                android:angle="270" />
            <stroke
                android:width="2dp"
                android:color="@color/activeBorder" />
            <corners
                android:radius="5dp" />
            <padding
                android:bottom="10dp"
                android:top="10dp"
                android:left="10dp"
                android:right="10dp" />
        </shape>
    </item>

</selector>

然后,在活动中

 <Button
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/up"
                    android:id="@+id/buttonUp1"
                    android:background="@drawable/custom_button2"/>