Creating Apps With Material Design —— Defining Shadows and Clipping Views

简介: View转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出,谢谢定义阴影和裁减材料设计引入了深度的UI元素。

View转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出,谢谢

定义阴影和裁减

材料设计引入了深度的UI元素。深度帮助用户了解每个元素的相对重要性,以及集中注意力于手头的任务。 


一个视图,通过Z属性表示的Elevation,决定了它的影子的大小:具有较高的Z值的View蒙上更大的阴影。浏览次数只投射阴影在Z=0平面上;他们不投在下面放置它们和上面的Z =0平面的其他意见的阴影。 

具有较高的Z值的意见闭塞的View与较低的Z值。然而,鉴于Z值不会影响视图的大小。 

Elevation也很有创建动画,其中的小部件暂时超越视图平面执行某些操作的时候。


指定Elevation到你的Views


一个视图中的Z值有两个组成部分,高度和翻译。仰角是静态分量和翻译是用于动画:

Z = elevation + translationZ


设置在布局定义视图的高度,使用android:elevation属性。设置在活动的代码视图的高度,使用View.setElevation()方法。 

要设置视图的转换,使用View.setTranslationZ()方法。 

新ViewPropertyAnimator.z()和ViewPropertyAnimator.translationZ()方法,使您能够轻松地制作动画的View elevation。欲了解更多信息,请参阅ViewPropertyAnimator和物业动画开发人员指南的API参考。 

您也可以使用StateListAnimator以声明方式指定这些动画。这是情况下,状态变化触发动画,当用户按下一个按钮,像特别有用。欲了解更多信息,请参见动画视图状态更改。
Z值与X和Y值具有相同的测量单位


自定义视图的阴影和Outlines


一个视图的背景绘制的边界决定了其影子的默认形状。Outlines表示图形对象的外部形状,并限定了波纹区域的触摸反馈。

考虑这个View,与背景绘制的定义:

<TextView
    android:id="@+id/myview"
    ...
    android:elevation="2dp"
    android:background="@drawable/myrect" />

背景绘制定义为带有圆角的矩形:

<!-- res/drawable/myrect.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <solid android:color="#42000000" />
    <corners android:radius="5dp" />
</shape>

该视图投下带有圆角的影子,因为背景绘制定义视图的轮廓。提供了一个自定义的轮廓覆盖视图的影子的默认形状。 


要定义自定义大纲代码中的一个View: 


    扩展ViewOutlineProvider类。 
    覆盖getOutline()方法。 
    分配新大纲提供给您的视图与View.setOutlineProvider()方法。 

您可以创建椭圆形和矩形轮廓使用大纲类中的方法圆角。默认纲要提供者的意见得到从视图的背景轮廓。为了防止鉴于蒙上阴影,设置其轮廓提供商为null。


裁减视图

裁剪View,您可以轻松地更改视图的形状。你可以改变视图一致性与其他设计元素或改变的图的形状,以响应用户输入。您可以剪辑,以便使用View.setClipToOutline()方法还是Android的轮廓区域:clipToOutline属性。只有矩形,圆形和圆角矩形轮廓支撑剪裁,如由Outline.canClip()方法来确定。 

夹视图到绘制的形状,设置绘制的视图的背景(如上图所示),并调用View.setClipToOutline()方法。 

剪裁View是昂贵的操作,所以不要动画,你用它来夹视图的形状。为了达到这个效果,请使用显示效果动画。







目录
相关文章
|
缓存 API 数据库
Reading:一款不错的Material Desgin风格的Kotlin版本的开源APP
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/81946831 Reading https://github.com/Hankkin/Reading 简介 很久不见,重新拾起博客吧,今天分享一个开源APP-Reading,项目的初衷是因为自己平时翻文章,但是公众号又经常忘记看,自己索性搞一个APP吧,顺便练一下Kotlin。
1360 0
|
Android开发
仿知乎app登录界面(Material Design设计框架拿来就用的TexnInputLayout)
在我脑子里还没有Material Design这种概念,就我个人而言,PC端应用扁平化设计必须成为首选,手当其冲的两款即时通讯旺旺和QQ早就完成UI扁平化的更新,然而客户端扁平化的设计本身就存在天生的缺陷,手指和鼠标箭头最大的区别是在于前者有温度和感觉的,这时候Material Design应运而生。
1565 0
|
存储 Web App开发 Android开发
基于Material Design设计的分享文字图片的APP
写在前面:这个项目是自己当时为了准备面试而做的,由于时间匆忙,水平有限,项目多多少少存在一些问题。代码的整洁性与复用性,以及整体架构的搭建都不尽人意,大家看看里面的一些效果就好。
1248 0
|
Android开发
一款基于Material Desgin设计的APP
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/50413625 源码小编已经上传到github上了,求star啊 https://github.
951 0
|
Android开发 数据格式 XML
Android Material Design TabLayout属性app:tabMode和app: tabGravity
Android Material Design TabLayout属性app:tabMode和app: tabGravity Android Material Design 中的TabLayout有两个比较有用的属性 app:tabMode、app:tabGravity, (1)app:tabMode有两个值:fixed和scrollable。
1643 0
|
API Android开发
Creating Apps With Material Design —— Maintaining Compatibility
转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出,谢谢 保持兼容性 如material design和自定义活动的过渡部分材料设计功能只能在Android5.0(API等级21)以上。
774 0
|
XML API Android开发
Creating Apps With Material Design —— Defining Custom Animations
转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出,谢谢 定义动画 在材料设计动画让用户与您的应用程序进行交互时,为他们的行为提供反馈,并提供可视化的连续性。
791 0
|
Android开发
Creating Apps With Material Design —— Working with Drawables
转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出,谢谢 Drawable 通过可绘制了以下功能帮助您实现材料设计你的应用程序:      可绘制着色     突出的颜色提取     矢量可绘 这一课将告诉您如何使用您的应用程序这些功能。
664 0
|
Android开发
Creating Apps With Material Design —— Creating Lists and Cards
转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出,谢谢 创建Lisst和Cards 在你的应用程序创建复杂的清单,并与材料设计风格卡,您可以使用RecyclerView和CardView部件。
856 0
|
Android开发 iOS开发
让你的 APP换上Material Design
转自  :http://www.jianshu.com/p/f22c0f50ac3f# 字数3293 阅读1357 评论15 喜欢60 Material Design 我的更多 android 博文,关注作者~每周更新一篇 Android干货博文http://xuyushi.github.io/archives/ 吐槽 作为一个 And
1817 0