美文网首页高级UI
Android控件阴影

Android控件阴影

作者: ByteCarry | 来源:发表于2019-08-10 17:15 被阅读0次

Android控件阴影

  1. 使用Android21之后新的控件属性elevation和translationZ

    类似:

    <TextView
                android:layout_width="100dp"
                android:layout_height="48dp"
                android:layout_margin="10dp"
                android:background="@drawable/shape_white1"
                android:translationZ="3dp"
                android:elevation="6dp" />
    

    要注意要想让该属性生效必须给控件设置背景且需要在父控件留有外边距空间,否则没有阴影或者阴影不显示。

    如果不设置background属性,可以指定android:outlineProvider="bounds"这样也可以出现阴影,但是控件会被添加上白色背景。

    几种情形:

image-20190810170721410.png

如果想要在Android21以下实现阴影,可以使用layer-list进行图层叠加实现:

<layer-list>
            <item>
                <shape android:shape="rectangle">
                    <padding android:bottom="0.5dp" android:left="0.5dp" android:right="0.5dp" android:top="0dp" />
                    <solid android:color="#00cccccc" />
                </shape>
            </item>
            <item>
                <shape android:shape="rectangle">
                    <padding android:bottom="0.5dp" android:left="0.5dp" android:right="0.5dp" android:top="0dp" />
                    <solid android:color="#05cccccc" />
                </shape>
            </item>
            <item>
                <shape android:shape="rectangle">
                    <padding android:bottom="0.5dp" android:left="0.5dp" android:right="0.5dp" android:top="0dp" />
                    <solid android:color="#08cccccc" />
                </shape>
            </item>
            <item>
                <shape android:shape="rectangle">
                    <padding android:bottom="0.5dp" android:left="0.5dp" android:right="0.5dp" android:top="0dp" />
                    <solid android:color="#10cccccc" />
                </shape>
            </item>
            <item>
                <shape android:shape="rectangle">
                    <padding android:bottom="0.5dp" android:left="0.5dp" android:right="0.5dp" android:top="0dp" />
                    <solid android:color="#c0cccccc" />
                </shape>
            </item>
            <item android:bottom="0dp" android:left="0.5dp" android:right="0dp" android:top="0dp">
                <shape android:shape="rectangle">
                    <solid android:color="@color/white" />
                </shape>
            </item>
        </layer-list>

参考文档

  1. https://developer.android.com/training/material/shadows-clipping.html?hl=zh-cn#Elevation

相关文章

网友评论

    本文标题:Android控件阴影

    本文链接:https://www.haomeiwen.com/subject/kcbrjctx.html