【问题标题】:How to add elevation for shape?如何为形状添加高程?
【发布时间】:2020-07-19 10:16:53
【问题描述】:

现在我有了下一个矩形:

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

    <corners android:radius="28dp" />

    <gradient
        android:endColor="#FFFFFF"
        android:gradientRadius="20dp"
        android:startColor="#FFFFFF"
        android:type="linear" />

    <size
        android:width="106dp"
        android:height="106dp" />

    <stroke
        android:width="1dp"
        android:color="#0189ff" />
</shape>

还有下一个结果:

问:如何添加阴影/高度而不是描边?

【问题讨论】:

    标签: android xml shapes android-elevation


    【解决方案1】:

    你不能直接应用阴影来代替描边。

    为此,您需要使用 &lt;layer-list&gt;&lt;/layer-list&gt; 自定义 XML

    喜欢

        <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    
        <!-- Drop Shadow Stack -->
        <item>
            <shape>
    
                <padding
                    android:bottom="@dimen/_3sdp"
                    android:left="@dimen/_1sdp"
                    android:right="@dimen/_3sdp"
                    android:top="@dimen/_1sdp" />
                <solid android:color="#00dff2e4" />
    
                <corners android:radius="@dimen/_5sdp" />
            </shape>
        </item>
        <item>
            <shape>
                <padding
                    android:bottom="@dimen/_3sdp"
                    android:left="@dimen/_1sdp"
                    android:right="@dimen/_3sdp"
                    android:top="@dimen/_1sdp" />
    
                <solid android:color="#10dff2e4" />
    
                <corners android:radius="@dimen/_50sdp" />
            </shape>
        </item>
        <item>
            <shape>
                <padding
                    android:bottom="@dimen/_3sdp"
                    android:left="@dimen/_1sdp"
                    android:right="@dimen/_3sdp"
                    android:top="@dimen/_1sdp" />
    
                <solid android:color="#20dff2e4" />
    
                <corners android:radius="@dimen/_50sdp" />
            </shape>
        </item>
        <item>
            <shape>
                <padding
                    android:bottom="@dimen/_3sdp"
                    android:left="@dimen/_1sdp"
                    android:right="@dimen/_3sdp"
                    android:top="@dimen/_1sdp" />
    
                <solid android:color="#30dff2e4" />
    
                <corners android:radius="@dimen/_50sdp" />
            </shape>
        </item>
        <item>
            <shape>
                <padding
                    android:bottom="@dimen/_3sdp"
                    android:left="@dimen/_1sdp"
                    android:right="@dimen/_3sdp"
                    android:top="@dimen/_1sdp" />
    
                <solid android:color="#50dff2e4" />
    
                <corners android:radius="@dimen/_50sdp" />
            </shape>
        </item>
    
        <!-- Background -->
        <item>
            <shape>
                <solid android:color="@android:color/white" />
    
                <corners android:radius="@dimen/_50sdp" />
            </shape>
        </item>
    
    </layer-list>
    

    输出

    【讨论】:

    猜你喜欢
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    相关资源
    最近更新 更多