前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android layer实现圆角 阴影

Android layer实现圆角 阴影

作者头像
大话swift
发布2019-10-22 15:26:02
1.7K0
发布2019-10-22 15:26:02
举报
文章被收录于专栏:大话swift大话swift

分析Android的采用layer-list效果实现圆角 阴影 背景

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<!--    先整个背景设置为灰色,然后上层叠加一个白色的,bottom right进行偏移不去遮挡底部的layer-->
    <item
        android:left="3dp"
        android:top="3dp">
        <shape>
            <solid android:color="#b4b5b6" />
        </shape>
    </item>
    <item android:bottom="6dp" android:right="3dp">
        <shape>
            <solid android:color="#fff"/>
        </shape>
    </item>
    <item>
        <shape>
<!--            shape 使用solid的填充内部-->
<!--            <solid android:color="#0099CC" />-->

            <corners android:radius="50dp"/>
<!--            stroke描边-->
            <stroke android:width="1dp" android:color="#000000"/>
        </shape>
    </item>
</layer-list>

自带预览效果

我们看看怎么使用

代码语言:javascript
复制
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:background="@drawable/layer_shape"
        android:gravity="center"
        android:minHeight="55dp"
        android:text="shape" />

在drawable的那个layer布局xml中采用item的方式将各个图形控制分开,依照层级堆叠

1 使用shape设置背景为gray,同时在left top留出3dp的空间,也就是进行偏移,其余的空间部分涂成gray的颜色

代码语言:javascript
复制
<item
        android:left="3dp"
        android:top="3dp">
        <shape>
            <solid android:color="#b4b5b6" />
        </shape>
    </item>

2 在1的上层添加一个shape涂成白色--bottom预留6dp,right预留3dp

代码语言:javascript
复制
 <item android:bottom="6dp" android:right="3dp">
        <shape>
            <solid android:color="#fff"/>
        </shape>
    </item

通过 1 2 我们可以可到一个右侧和底部有阴影的晕的效果

3 在 12之上叠加在叠加一个shape---设置圆角半径为50dp,stroke描边宽为1dp

代码语言:javascript
复制
 <item>
        <shape>
<!--            shape 使用solid的填充内部-->
<!--            <solid android:color="#0099CC" />-->

            <corners android:radius="50dp"/>
<!--            stroke描边-->
            <stroke android:width="1dp" android:color="#000000"/>
        </shape>
    </item>
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大话swift 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档