如何创建一个包含图像,文字和两种颜色的按钮?

时间:2017-11-03 23:09:35

标签: android xml android-drawable android-button android-shapedrawable

这是我想到的链接。

https://dribbble.com/shots/1407665-Categories/attachments/204971

是否有一个人们都知道可以管理这个的流行图书馆,否则我可以选择自定义路线。

我的XML中定义了9个按钮没问题。

接下来我知道我必须在drawable文件夹中创建一个xml文件,例如" button_shape.xml"。然后我将其添加到我的代码中:

android:background="@drawable/button_shape"

我让我的按钮有一个图像,我假设:

android:drawableTop="@drawable/buttonImage"

我猜最后是如何创建一个形状,使底部颜色与文本保持一致。允许不同的按钮大小。我也可以通过在每个按钮上设置样式并将其定义为:

来轻松地交替颜色
  <style name ="ButtonTheme.Custom1" parent="Base.Widget.AppCompat.Button.Colored">
        <item name="colorPrimary">@android:color/holo_blue_light</item>
        <item name="colorPrimaryDark">@android:color/holo_blue_dark</item>
    </style>

    <style name ="ButtonTheme.Custom2" parent="Base.Widget.AppCompat.Button.Colored">
        <item name="colorPrimary">@android:color/holo_green_light</item>
        <item name="colorPrimaryDark">@android:color/holo_green_dark</item>
    </style>

    <style name ="ButtonTheme.Custom3" parent="Base.Widget.AppCompat.Button.Colored">
        <item name="colorPrimary">@android:color/holo_red_light</item>
        <item name="colorPrimaryDark">@android:color/holo_red_dark</item>
    </style>

    <style name ="ButtonTheme.Custom4" parent="Base.Widget.AppCompat.Button.Colored">
        <item name="colorPrimary">@android:color/holo_orange_light</item>
        <item name="colorPrimaryDark">@android:color/holo_orange_dark</item>
    </style>

    <style name ="ButtonTheme.Custom5" parent="Base.Widget.AppCompat.Button.Colored">
        <item name="colorPrimary">@android:color/holo_blue_bright</item>
        <item name="colorPrimaryDark">@android:color/holo_blue_light</item>
    </style>

到目前为止我的自定义形状是这个,它很接近;但是如何让较暗的颜色保持一致的尺寸,而另一个颜色根据按钮的大小移动?

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:bottom="10dp">
        <shape android:shape="rectangle" >
            <size android:height="10dp" />
            <solid android:color="@color/colorPrimaryDark" />
        </shape>
    </item>

    <item android:top="120dp">
        <shape android:shape="rectangle" >
            <size android:height="120dp" />
            <solid android:color="@color/colorPrimary" />
        </shape>
    </item>
</layer-list>

1 个答案:

答案 0 :(得分:1)