咨询热线:023-63853373

24小时热线:13372636650

新闻中心

首页

产品方案

服务项目

开发案例
新闻资讯
联系我们

【Android】Material Design设计中的阴影效果

2020/02/06  来源:乐潮信息

Material Design 的一个很重要的特点就是拟物扁平化。以往的Android View通常具有两个属性,X和Y,而在Android5.X中,Google为其增加了一个新的属性:Z,对应垂直方向上的高度变化。

想象有一束斜光投向屏幕,Z 轴值越大,离光就越近,阴影的范围就越大;Z 轴值越小,离光就越远,阴影的范围就越小。而:

Z=elevation+ translationZ

Elevation是静态的成员,translationZ可以在代码中使用来实现动画效果。

通过在XML布局中使用如下代码来静态设置View的视图高度。

 

android:elevation="Xdp"

 

通过下面的代码,演示了不同视图高度所显示效果的不同,XML代码如下所示:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:gravity="center_horizontal"

    android:orientation="vertical"

    android:padding="10dp"

tools:context=".MainActivity">

 

    <TextView

        android:id="@+id/tv_1"

        android:layout_width="100dp"

        android:layout_height="100dp"

        android:layout_margin="10dp"

        android:background="#ff0000" />

    <TextView

        android:id="@+id/tv_2"

        android:layout_width="100dp"

        android:layout_height="100dp"

        android:layout_margin="10dp"

        android:background="#ff0000"

        android:elevation="2dp" />

    <TextView

        android:id="@+id/tv_3"

        android:layout_width="100dp"

        android:layout_height="100dp"

        android:layout_margin="10dp"

        android:background="#ff0000"

        android:elevation="10dp" />

 

</LinearLayout>

效果如下图所示:

在程序中,同样可以使用如下代码来改变视图的高度:

view.setTranslationZ(XXX);

 

通常也会使用属性动画来为视图高度改变的时候增加一个动画效果,代码如下:

if (flag1) {
    tv1.animate().translationZ(100);
} else {
    tv1.animate().translationZ(0);
}
flag1 = !flag1;

 

在引入了elevation这个属性之后,主要影响有两个:

1、影响View的阴影

Z值会对View的阴影外观造成影响,但是不是对View大小造成影响。


2、影响View相互阻挡顺序

拥有更大Z值的View会挡住Z值比较小的View——即更大Z值的View会在最上层。

 

注意:

1. 控件必须设置背景色,且不能为透明。

2. 阴影是绘制于父控件上的,所以控件与父控件的边界之间需有足够空间绘制出阴影才行。

3. 图片尽量使用.png, 防止图片过大导致oom或者elevation失效

4.background是图片时、background直接设置具体颜色值时容易无效如:#ffaacc,background是shape时效果最好

5.设置elevation的View最好是ViewGroup子类

 

 

乐潮信息www.leco-tec.com

重庆APP开发多少钱

根据app应用软件开发的难易程度可以将重庆app开发价格大致分为一下几类

手机app定制开发要根据用户市场来

重庆app开发公司乐潮科技认为,随着移动互联网技术的不断发展,手机app开发现在已经

开发三级分销系统APP的好处

重庆APP开发乐潮科技认为:三级分销系统是各路商家的最爱,这句话说的绝对没毛病。

点击我更换图片

公司地址:

重庆市渝北区冉家坝时光城写字楼

联系方式:

023-63853373

13372636650(24h热线)

重庆市渝北区冉家坝时光城写字楼

© 2020 乐潮信息

渝ICP备15006414号-2      渝公网安备 50011202502110号