android elevation 白色,Android Elevation

简介:

在Android API21,新添加了一个属性:android:elevation,用以在xml定义View的深度(高度),也即z方向的值。

除了elevation之外,类似于已有的translationX、translationY,也相对应地新增了一个translationZ,用以在属性动画中动态改变Z值(使用View.setTranslationZ())

Z = elevation + translationZ

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

影响View的阴影

影响View相互阻挡顺序

1. 影响View的阴影

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

拥有更大Z值的View会有一个更大但是更柔和的阴影——这跟我们生活的实际体验是一致的,官方给的效果图:

363075694482

阴影效果图

2. 影响View相互阻挡顺序

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

譬如,在正常的FrameLayout中,子View的绘制顺序是从上到下,也就是说,最后一个子View会显示到最上面,如果位置跟前面的View有重合,则会盖住前面的View。

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/viewA"

android:background="#f00"

android:text="A"

android:gravity="center"

android:layout_width="100dp"

android:layout_height="100dp" />

android:id="@+id/viewB"

android:background="#0f0"

android:text="B"

android:gravity="center"

android:layout_marginLeft="60dp"

android:layout_marginTop="60dp"

android:layout_width="100dp"

android:layout_height="100dp" />

android:id="@+id/viewC"

android:layout_marginLeft="180dp"

android:background="#f00"

android:text="C"

android:gravity="center"

android:elevation="1dp"

android:layout_width="100dp"

android:layout_height="100dp" />

android:id="@+id/viewD"

android:background="#0f0"

android:text="D"

android:gravity="center"

android:layout_marginLeft="240dp"

android:layout_marginTop="60dp"

android:layout_width="100dp"

android:layout_height="100dp" />

比如,上面的xml代码,效果如下图所示:

363075694482

image.png

先看ViewA、ViewB,因为ViewB是第二个子View,ViewA是第一个,所以B会覆盖在A的上面。

然后ViewC、D,跟AB相比较,区别就在于ViewC多了一个elevation属性,有了一个比ViewD更大的Z值,所以,即使它在ViewD的前面,但是依然能够盖住D~

注意 设置Elevation 属性失效的情况:

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

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

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

4. 经过本人测试,除了上述原因外,还有:background是图片时、background直接设置具体颜色值时容易无效如:#ffaacc,background是shape时效果最好

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310774.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(译)创建.NET Core多租户应用程序-租户解析

介绍本系列博客文章探讨了如何在ASP.NET Core Web应用程序中实现多租户。这里有很多代码段,因此您可以按照自己的示例应用程序进行操作。在此过程的最后,没有对应的NuGet程序包,但这是一个很好的学习和练习。它涉及到框架的一些“核心”部分。…

LeetCode 404左叶子之和-简单

计算给定二叉树的所有左叶子之和。 示例: 3/ \9 20/ \15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 代码如下: /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode…

android apt最新版本,解决Android studio 2.3升级到Android studio 3.0 后apt报错问题

解决Android studio 2.3升级到Android studio 3.0 后apt报错问题发布时间:2020-09-16 19:59:42来源:脚本之家阅读:62作者:哈特中尉1.现象描述原来项目在Android studio 2.3一切正常,升级3.0之后报如下错误:…

【要闻】Kubernetes无用论诞生、Elasticsearch 7.6.2 发布

导读:本期要闻包含OpenStack网络如何给组织带来好处、Portworx CEO分享的如何让Kubernetes跑得快还不出错的秘籍等精彩内容。大数据要闻Elasticsearch 7.6.2 发布,分布式搜索和数据分析引擎Elasticsearch 7.6.2 发布了,Elasticsearch 是一个分…

android中弹出窗口,如何在Android中创建弹出窗口(PopupWindow)

如何制作一个简单的Android弹出窗口这是一个更完整的例子。这是一个补充性答案,涉及一般情况下创建弹出窗口的过程,而不一定是OP问题的具体细节。(OP要求取消按钮,但这不是必需的,因为用户可以在屏幕上的任意位置单击以将其取消。…

LeetCode 04检查平衡性-简单

实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3/ \9 20/ \15 7返回 true 。 示例 2: 给定二叉树 [1,2,2,3,…

玩转控件:对Dev中GridControl控件的封装和扩展

清明节清明时节雨纷纷路上行人欲断魂借问酒家何处有牧童遥指杏花村又是一年清明节至,细雨绵绵犹如泪光,树叶随风摆动....转眼间,一年又过去了三分之一,疫情的严峻让不少企业就跟清明时节的树叶一样,摇摇欲坠。裁员的裁…

C++ using namespace 命名空间的定义与使用

#include <iostream> using namespace std;namespace A {int x, y;void fun() {cout << "hello world" << endl;} }int main() {using namespace A;cout << x << endl;fun();return 0; }

android webview framework,android – Webview导致ANR

我编写了一个应用程序,它在Webview中显示html页面,这些页面在ViewPager中管理.一切正常,但是从一页翻到另一页时我有几个ANR. ANR数据转储显示主线程已通过ThreadedRenderer.nSyncAndDrawFrame()调用它调用本机方法,该方法显然与Renderer线程通信,并等待该线程完成绘制视图.由于…

创业5年,我有5点关于人的思考

点击蓝字关注&#xff0c;回复“职场进阶”获取职场进阶精品资料一份不知不觉创业五年了&#xff0c;也算一个屡战屡败、屡败屡战的创业老兵了。从第一次失败要靠吃抗抑郁的药&#xff0c;到现在理性的看待成败得失&#xff0c;不得不说&#xff0c;创业这条路对我还是有不小提…

C++实现具有[数组]相似特征的类DoubleSubscriptArray

#include <iostream> using namespace std;class DoubleSubscriptArray {public:DoubleSubscriptArray(int x, int y) {p new int *[x];//行 //申请行的空间for (int i 0; i < x; i) {p[i] new int [y];//每行的列申请空间}for (int i 0; i < x; i)for (int j …

Docker-HealthCheck指令探测ASP.NET Core容器健康状态

写在前面HealthCheck 不仅是对应用程序内运行情况、数据流通情况进行检查&#xff0c;还包括应用程序对外部服务或依赖资源的健康检查。健康检查通常是以暴露应用程序的HTTP端点的形式实施&#xff0c;可用于配置健康探测的的场景有 &#xff1a;容器或负载均衡器 探测应用状态…

LeetCode28 对称的二叉树-简单

请实现一个函数&#xff0c;用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样&#xff0c;那么它是对称的。 例如&#xff0c;二叉树 [1,2,2,3,4,4,3] 是对称的。 1/ \2 2/ \ / \ 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1/ \2 2\ …

ASP.NET Core分布式项目实战(课程介绍,MVP,瀑布与敏捷)--学习笔记

任务1&#xff1a;课程介绍课程目标&#xff1a;1、进一步理解 ASP.NET Core 授权认证框架、MVC 管道2、掌握 Oauth2&#xff0c;结合 Identity Sercer4 实现 OAuth2 和 OpenID Connect Server3、掌握 ASP.NET Core 与 Redis, MongoDB, RabitMQ, MySQL 配合使用4、理解 DDD&…

html坐标轴背景色,CSS 背景(css background)

CSS 背景-CSS background一、Css background背景语法 - TOPCSS背景基础知识CSS 背景这里指通过CSS对对象设置背景属性&#xff0c;如通过CSS设置背景各种样式。背景语法&#xff1a;background: background-color || background-image || background-repeat || background-…

LeetCode 965单值二叉树-简单

如果二叉树每个节点都具有相同的值&#xff0c;那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时&#xff0c;才返回 true&#xff1b;否则返回 false。 示例 1&#xff1a; 输入&#xff1a;[1,1,1,1,1,null,1] 输出&#xff1a;true 示例 2&#xff1a; 输入&…

使用EF.Core将同一模型映射到多个表

在 EntityFramework Core 中&#xff0c;我们可以使用属性或Fluent API来配置模型映射。有一天&#xff0c;我遇到了一个新的需求&#xff0c;有一个系统每天会生成大量数据&#xff0c;每天生成一个新的表存储数据。例如&#xff0c;数据库如下所示&#xff1a;所有表都具有相…

android创建类的包名称,如何知道/配置Xamarin Android生成的程序包名...

如果您未通过属性指定Xamarin,Xamarin会自动生成类ID一些例子&#xff1a;活动命名&#xff1a;[Activity(Label "ActivityNaming", Name "com.sushihangover.playscript.MyBigBadGame", MainLauncher true, Icon "mipmap/icon")]public cla…

[蓝桥杯2016决赛]愤怒小鸟-模拟

题目描述 X星球愤怒的小鸟喜欢撞火车&#xff01; 一根平直的铁轨上两火车间相距 1000 米。两火车 &#xff08;不妨称A和B&#xff09; 以时速 10米/秒 相对行驶。 愤怒的小鸟从A车出发&#xff0c;时速50米/秒&#xff0c;撞向B车&#xff0c;然后返回去撞A车&#xff0c;再返…

EntityFramework Core 3.x添加查询提示(NOLOCK)

前几天看到有博客园中有园友写了一篇关于添加NOLOCK查询提示的博文&#xff0c;这里呢&#xff0c;我将介绍另外一种添加查询提示的方法&#xff0c;此方式源于我看过源码后的实现&#xff0c;孰好孰歹&#xff0c;请自行判之&#xff0c;接下来我们一起来看看。在EntityFramew…