如何在Android按钮上创建阴影(材质设计)

时间:2015-09-24 04:36:20

标签: android css css3 material-design

在这里,我想问一个让我如此困惑的简单问题, 我开发了一个Android应用程序,我想使用材料设计主题。

但是当我尝试在RaisedButton下编码Shadow时,它不起作用。 我的意思是它只是按下按钮而不是阴影。

请高手,帮帮我是否有任何简单的方法来制作这个影子? 感谢

NB。这是我的custon_button.xml

<item android:state_pressed="true" >
    <shape>
        <solid
            android:color="@color/solidpress"
            />
        <stroke
            android:width="1dp"
            android:color="@color/strokepress" />
        <corners
            android:radius="2dp" />
        <padding
            android:left="5dp"
            android:top="10dp"
            android:right="1dp"
            android:bottom="10dp" />
    </shape>
</item>

<item android:state_focused="true" > //focused fuck shit man
    <shape>
        <solid
            android:color="@color/solidfocus"
            />
        <stroke
            android:width="3dp"
            android:color="@color/strokefocus" />
        <corners
            android:radius="2dp" />
        <padding
            android:left="5dp"
            android:top="10dp"
            android:right="5dp"
            android:bottom="10dp" />
    </shape>
</item>

<item> // normal

    <shape>
        <solid
            android:color="@color/solidnormal" />
        <stroke
            android:width="1dp"
            android:color="@color/strokenormal" />
        <corners
            android:radius="2dp" />
        <padding
            android:left="5dp"
            android:top="10dp"
            android:right="1dp"
            android:bottom="10dp" />
    </shape>
</item>

我将该代码应用于我的活动

android:background="@drawable/custom_button

3 个答案:

答案 0 :(得分:2)

请看这个

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

    <item android:state_pressed="false"><layer-list>
            <item><shape>
                    <gradient android:angle="270" android:centerColor="#00c0f0" android:endColor="#036b86" android:startColor="#01bff3"></gradient>

                    <corners android:radius="5dp" />
                </shape></item>
            <item android:bottom="3dp"><shape>
                    <gradient android:angle="270" android:centerColor="#00c0f0" android:endColor="#01bff3" android:startColor="#01bff3"></gradient>

                    <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />

                    <corners android:radius="5dp" />
                </shape></item>
        </layer-list></item>

    <item android:state_pressed="true"><layer-list>
            <item ><shape>
                    <gradient android:angle="270" android:centerColor="#00c0f0" android:endColor="#01bff3" android:startColor="#036b86"></gradient>

                    <corners android:radius="5dp" />
                </shape></item>
            <item android:top="3dp"><shape>
                    <gradient android:angle="270" android:centerColor="#00c0f0" android:endColor="#01bff3" android:startColor="#01bff3"></gradient>

                    <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />

                    <corners android:radius="5dp" />
                </shape></item>
        </layer-list></item>

</selector>

答案 1 :(得分:1)

<强> shadow.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <layer-list>
        <item android:right="5dp" android:top="5dp">
            <shape>
                <corners android:radius="3dp" />
                <solid android:color="#D6D6D6" />
            </shape>
        </item>
        <item android:bottom="2dp" android:left="2dp">
            <shape>
                <gradient android:angle="270" 
                    android:endColor="#E2E2E2" android:startColor="#BABABA" />
                <stroke android:width="1dp" android:color="#BABABA" />
                <corners android:radius="4dp" />
                <padding android:bottom="10dp" android:left="10dp" 
                    android:right="10dp" android:top="10dp" />
            </shape>
        </item>
    </layer-list>
</item>

</selector>

并将此代码添加到Button

android:background="@drawable/shadow"

看看物质暗影:Shadow Background Android

答案 2 :(得分:1)

如果rajan ks&#39;答案无效,您可以尝试在CardView(android.support.v7.widget.CardView)中包装按钮,并使用其app:cardElevation属性为CardView提供一些高程。

<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:cardElevation="4dp"
    app:cardPreventCornerOverlap="false">

    <Button />

</android.support.v7.widget.CardView>