按钮与背景图像和使用材料设计风格 - Android

时间:2015-11-17 10:08:15

标签: android button material-design

样式不起作用的材质设计按钮

我有一个背景颜色为DarkBlue的按钮,我需要这个按钮的Material设计风格,如下所示:

如何可能

    <Button
        android:id="@+id/login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight=".5"
        android:background="#0040FF"
        android:textColor="#FFFF"
        android:layout_marginRight="10dp"
        android:text="Login" />

我需要使用:

style="?android:attr/buttonStyleSmall"
android:background="?android:attr/selectableItemBackground"

通常在我使用

<Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight=".5"
            android:paddingRight="15dp"
            android:layout_gravity="center"
            android:text="Login"
            android:paddingLeft="15dp"
            android:id="@+id/login" />

适用于Design。

是否可以使用背景图像/颜色执行材质设计按钮样式。 对于我在UI中工作的简单问题感到抱歉。

1 个答案:

答案 0 :(得分:1)

在drawable-v21目录中使用drawable ripple.xml作为背景,例如:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
        android:color="?attr/colorControlHighlight">
    <item android:drawable="?attr/colorPrimary"/>
</ripple>

对于少于sdk 21,您必须在drawable文件夹中创建自定义选择器ripple.xml。那么它将加载到lollypop设备中

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

根据您的需要使用自定义颜色

然后

<Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight=".5"
            android:paddingRight="15dp"
            android:layout_gravity="center"
            android:text="Login"
            android:paddingLeft="15dp"
             android:background="@drawable/ripple"
            android:id="@+id/login" />