从矩阵来看Android中的一些动画变换
开头
这篇博客,是参考了文章:Android Matrix,这篇文章有具体的分析过程和android实例。我只是参考和根据自己的理解写的。
在Android中,我们可以从数学的角度来看颜色和动画的变换。这里会从矩阵变换的角度来理解平移,旋转,缩放,对称的变换。
这些变换的完成实际上,是操作一个3X3的矩阵的。而这四种基本变换与操作和这个矩阵有什么样的关系呢?下面会分析。
这篇博客,是参考了文章:Android Matrix,这篇文章有具体的分析过程和android实例。我只是参考和根据自己的理解写的。
在Android中,我们可以从数学的角度来看颜色和动画的变换。这里会从矩阵变换的角度来理解平移,旋转,缩放,对称的变换。
这些变换的完成实际上,是操作一个3X3的矩阵的。而这四种基本变换与操作和这个矩阵有什么样的关系呢?下面会分析。

马上就到2018年过年了,然后我又刚好有兴致,就来玩玩Android中的简单几何图形的绘制和使用Path类来绘制路径。
在Android中,和我们平时画图一样是有画笔和画布的,Path是画笔,Canvas是画布。与画的样式属性有关,如大小或者颜色等,是由Path来完成的;
Android中的消息机制是指线程之间的通信机制。我们都知道,如果我们在UI主线程中做耗时的操作而无法及时处理时,程序会弹出ANR全名Application Not Responding, 也就是”应用无响应”的对话框。
首先来一张图,从整体上来看一下android消息机制。

Handler:用于发送消息和处理消息
MessageQueue: 一个先进先出的消息队列
Looper:循环者,它不断的循环的遍历查询消息队列
在这篇文章中,将会基于android 26源码上分析Activity从启动到显示到屏幕和Decorview添加到Window中的过程。另外在本文中,省略了很多内容,目的只是从源码中找到一条启动的线索。迟点再补充上流程图。
在应用层开发时,Acitvity跳转会写出下面的代码:
1 | public static void startAtcivity(BaseActivity activity) { |
首先直接上效果图:
简单分析,首先画一个半径固定为R的颜色填充的圆,再画一些半径从R逐渐增大的圆就形成圆形不断的向外扩大的效果,并且这些圆形的透明度是与半径的相关的。最后在圆形的中心画文本。
这篇文章主要讲解view的工作原理中的三大流程,包括测量流程,布局流程,绘制流程。这些都是自定义控件的基础。下面先对三大流程的职责做简要的概述:
测量流程确定了控件的测量的大小;
布局流程确定了控件在父控件中的四个位置的坐标和控件的实际大小;
绘制流程负责控件的绘制并显示在屏幕上。
View的绘制流程是从ViewRoot的performTraversals开始的。在performTraversals经过一堆的逻辑,会分别调用performMeasure,performLayout,performDraw。
然后在view树中,先后调用一下的方法: