安卓-实现阴影的几种方式

第一种:安卓原生:evaluation()方式(不能设置阴影的偏移量及方向及阴影颜色);
setElevation(80.0f*getResources().getDisplayMetrics().density);
第二种:9png图片:需要自己调整9png图片,会占位,自带大小会压缩布局;

9png图片生成地址:9png

第三种:shape生成阴影:(伪阴影)一层一层的画上去
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Drop Shadow Stack -->
    <item>
        <shape>
            <padding
                android:bottom="10dp"
                android:left="2dp"
                android:right="2dp"
                android:top="2dp" />
            <corners android:radius="16dp"/>
            <solid android:color="#10CCCCCC" />
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="10dp"
                android:left="2dp"
                android:right="2dp"
                android:top="2dp" />
            <corners android:radius="16dp"/>
            <solid android:color="#20CCCCCC" />
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="10dp"
                android:left="2dp"
                android:right="2dp"
                android:top="2dp" />
            <corners android:radius="16dp"/>
            <solid android:color="#30CCCCCC" />
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="10dp"
                android:left="2dp"
                android:right="2dp"
                android:top="2dp" />
            <corners android:radius="16dp"/>
            <solid android:color="#40CCCCCC" />
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="10dp"
                android:left="2dp"
                android:right="2dp"
                android:top="2dp" />
            <corners android:radius="16dp"/>
            <solid android:color="#50CCCCCC" />
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="10dp"
                android:left="2dp"
                android:right="2dp"
                android:top="2dp" />
            <corners android:radius="16dp"/>
            <solid android:color="#60CCCCCC" />
        </shape>
    </item>
    <!-- Background -->
    <item>
        <shape>
            <solid android:color="#F2FFFFFF" />
            <corners android:radius="16dp" />
            <padding android:bottom="12dp"/>
        </shape>
    </item></layer-list>
第四种:cardView:可以设置阴影大小,圆角及偏移但是不能设置阴影颜色:自己测过不知道为啥下方没有阴影
第五种:自定义view,包括自定义drawable,shadowLayout等;网上的太多,可以自己copy
Logo

智屏生态联盟致力于大屏生态发展,利用大屏快应用技术降低开发者开发、发布大屏应用门槛

更多推荐