Android 四种阴影实现方式对比

发布时间:2020-07-21 21:36:52 作者:星恒Android
来源:网络 阅读:16264
1 点九生成阴影

优点 随意调整 效果立即可见,快速实现。
缺点 自带大小会压缩布局;如果布局内有图片,容易被图片覆盖阴影

https://inloop.github.io/shadow4android/

2 shape生成阴影
<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <layer-list>
            <item android:left="4dp" android:top="4dp">
                <shape>
                    <solid android:color="#ff58bb52" />
                    <corners android:radius="30dip"/>
                </shape>
            </item>
        </layer-list>
    </item>
    <item>
        <layer-list>
            <!-- SHADOW LAYER -->
            <item android:left="4dp" android:top="4dp">
                <shape>
                    <solid android:color="#66000000" />
                    <corners android:radius="30dip"/>
                </shape>
            </item>
            <!-- CONTENT LAYER -->
            <item android:bottom="4dp" android:right="4dp">
                <shape>
                    <solid android:color="#ff58bb52" />
                    <corners android:radius="30dip"/>
                </shape>
            </item>
        </layer-list>
    </item>
</selector>

优点:不影响布局,灵活使用
缺点:难以调整效果,不够直观

3 使用cardview

android.support.v7.cardview
直接套在item外即可形成硬朗的卡片阴影效果,参数也可以调整。
app:cardBackgroundColor 设置背景颜色  
app:cardCornerRadius 设置圆角大小  
app:cardElevation 设置z轴的阴影  
app:cardMaxElevation 设置z轴的最大高度值  
app:cardUseCompatPadding是否使用CompatPadding  
app:cardPreventCornerOverlap是否使用PreventCornerOverlap  
app:contentPadding 设置内容的padding  
app:contentPaddingLeft 设置内容的左padding  
app:contentPaddingTop 设置内容的上padding  
app:contentPaddingRight 设置内容的右padding  
app:contentPaddingBottom 设置内容的底padding

优点:使用方便,md风格。
缺点:参数调整麻烦,需要重新编译;5.0以下系统效果受影响。

4 使用封装好的阴影库

https://github.com/Devlight/ShadowLayout
优点:使用后会给所有子布局包括文字加上阴影,效果可以preview,
缺点:无法单独给多层布局最外层加阴影;引入了新的库占据资源;需要耐心调整

推荐阅读:
  1. Android如何实现万能自定义阴影控件
  2. Android Material Design 阴影实现示例

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

移动开发 android roi

上一篇:Linux编译WMIC

下一篇:(JQuery学习笔记)我对jQuery选择器的总结

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》