码迷,mamicode.com
首页 > 移动开发 > 详细

Android动画原理-基础篇(认识View)

时间:2018-06-06 21:53:02      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:包括   mat   ima   set   维基百科   dimens   fps   raw   默认   

一、动画是什么

Animation is a dynamic medium in which images or objects are manipulated to appear as moving images. -来自维基百科

翻译:动画是动态的画面。

二、android中的动画

手机的屏幕是刷新的,正常情况下频率在60fps.也就是大约16ms界面会刷新一次。

android所有的动画的原理都是在这16ms之间,改变了显示内容的区域,从而达到动画的效果。

因为android的可视控件的绘制都是在View上完成的,所以理解View对理解动画有很大的帮助。

三、简述View的绘制过程

View的绘制过程分为三个步骤,测量、布局、绘制。

这三个词很容易理解,下面重点解释这三个步骤具体跟View产生了什么样的联系。

1.测量:
View的测量发生在measure,父布局调用child.measure方法来测量子view.而子view合适的反馈应该是测量完毕后通过setMeasureDimension方法设置好自己的大小,以便父view作参考。

View测量的过程常常发生在onMeasure方法中,测量完毕后调用setMeasureDimension实际是设置了View的mMeasureWidth和mMeasureHeight。

2.布局:

View的布局发生在layout中,同样父布局调用child.layout(l,r,t,b)并传递给child设定好的位置来让child设置自身的mLeft,mRight,mTop,mBottom。

一般情况会直接根据layout的建议来设置自己的mLeft,mRight,mTop,mBottom。

当然你可以忽略建议,自己设置,注意如果你改了mLeft,mTop,意味着你对父view对自己设置的左上角顶点不满意。

如果你改变了(mRight-mLeft) 和 (mBottom-mTop) 意味着你对父view对自己设置的大小不满意。--你应该已经知道此后View的getWidht 和 getHeight就是获取的前面两个减法运算的结果。

你可以在程序运行中随时改变它们,而这种场景就包括动画。

3.绘制

绘制发生的View的draw方法中。父View会通过drawchild会调用child的draw(x,x,x)三个参数的这个方法,其中有一个参数是canvas。

在draw(x,x,x)方法中,View默认先对canvas translate一下 到View的坐标系中,然后进行硬件或软件的绘制。

 

Android动画原理-基础篇(认识View)

标签:包括   mat   ima   set   维基百科   dimens   fps   raw   默认   

原文地址:https://www.cnblogs.com/vete-l/p/9145116.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!