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

1、动画是什么android

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

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

2、android中的动画布局

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

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

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

3、简述View的绘制过程get

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

这三个词很容易理解,下面重点解释这三个步骤具体跟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的坐标系中,而后进行硬件或软件的绘制。

相关文章
相关标签/搜索