十年专注于品牌网站建设 十余年专注于网站建设_小程序开发_APP开发,低调、敢创新、有情怀!
南昌百恒网络微信公众号 扫一扫关注
小程序
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络微信小程序

百恒网络

南昌百恒网络

通过elevation和Z值实现Android阴影绘制效果

百恒网络 2017-07-03 10932

应用界面元素间的投影最能让用户清晰地感知用户界面的深度,那么南昌APP开发中投影是如何实现的呢?有些人第一反应会觉得这是设计人员的事,开发人员直接调用就行了。他们这样想或许有他们的道理,但无论如何,有了分歧就要具体问题具体分析。稍加分析之后就会发现,哪怕是简单的应用,也涉及大量的surface动画特效,处理这样千变万化的投影简直是巨大的工作量。而且交给设计人员去绘制肯定也不现实。实际上,只要给每个视图设置elevation,Android就可以帮我们实现阴影绘制。

随着Lollipop系统的发布,Android为布局系统引入了Z轴概念。这允许我们在三维空间里布置视图。如下图所示,elevation类似赋予布局视图的坐标:视图可以动态远离其原始坐标,但其原始位置是不变的。

Z平面上的elevation

可以使用View.setElevation(float)方法或在布局XML文件中设置elevation值,如下代码所示。

在布局文件中设置elevation值

在布局文件中设置elevation值

因为elevation值要作为Z基准值使用,所以我们最好采用设置XML属性值的方式。而且,相比setElevation(float)方法,这种方式使用灵活,Lollipop以前版本的系统会默认忽略 android:elevation属性,因此,比较难以对付的兼容性问题也就不用考虑了。

要修改View视图的elevation,我们可以使用translationZ和Z属性。如下图所示,Z值总是等于elevation 加上 translationZ。如果给Z一个值,那么系统会自动计算得出translationZ值。

Z和translationZ

看完以上介绍,我想大家对Android 开发中实现阴影绘制的方法有所了解了,如有还有不知道的朋友,可随时来电和我们联系,百恒网络是一家专业从事南昌APP开发、网站建设等服务的企业,对于APP开发技术非常娴熟,只要您有需要,我们一定竭诚为您服务!


400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络小程序

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
售后服务 售后服务
 
备案专线 备案专线
 
×