最简单好用的 Android 阴影 shadow xml 写法

1:先看效果图

要制造出这种效果的阴影这里提供三种思路重点推荐第三种

1:CardView  desgin 包中的控件,自带阴影效果 通过 属性控制阴影浓度

app:cardElevation

在API >=  21   可以直接通过使用

android:elevation

2:通过点九图,让美工给你加好阴影之后直接设置为控件背景

3: 通过android 图层 xml 方式实现,下面举个例子

步骤----1:创建图层drawable,top_10dp_shadow_bg 代码如下

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <gradient android:angle="-90" android:startColor="#1cffffff" android:endColor="#3c000000"/>
        </shape>
    </item>
    <item android:top="10dp">
        <shape android:shape="rectangle">
            <solid android:color="@android:color/white"/>
        </shape>
    </item>
</layer-list>
解释:渐变实现阴影从白色#1cffffff 到 黑色#3c000000 渐变 -90 自上而下渐变,第二个item 是给了一个控件的白色背景

步骤--2 :直接将这个图层当做控件的背景是不可以实现阴影的,还需要调整目标控件的上方留出10个dp 来显示图层背景

<android.support.constraint.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="58dp"
    android:background="@drawable/top_10dp_shadow_bg"
    android:orientation="horizontal">

    <com.hytch.TravelTicketing.widgets.ColorfulTextView
        android:id="@+id/total_consume"
        android:layout_width="wrap_content"
        android:layout_height="17dp"
        android:text="@string/total_consume"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_weight="1"
        app:layout_constraintStart_toStartOf="parent"
        android:layout_marginTop="10dp"
        android:layout_marginStart="20dp"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="107dp"
        android:layout_height="match_parent"
        android:layout_marginTop="10dp"
        android:background="@drawable/seletor_send_order_bg"
        android:text="@string/send_order"
        android:textColor="@android:color/white"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_goneMarginTop="10dp"
        app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
解释原本 设计图中48dp 的ConstraintLayout ,我将它加大了10dp 用于显示图层中10dp 渐变带来的阴影效果,记录下来这个小窍门
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值