00:00
下面呢,我们要去去测试他们啊,先把这个测试用例呢,给它创建起来,但是呢,不需要大家一个一个写,这里呢,有一个基础工程。啊,大家把这个基础的工程给它导进来。好,来吧。Import。啊,已经存在了Android工程。看见V。Refresh。Copy。Finish。好了没?好了啊,来这里呢,我要把我的应用呢,给它运行起来。一个一个做啊这个东西不着急,大家看着我们呢,有三个activity,首先呢是我们的主界面,主界面是一个什么样的界面呢。是不是两个八层啊,一个用来测试视图动画的,一个用来测试图片动画的。那好了,我们来先来从图片动画开始啊,视图动画开始啊,这里面va是view,哎,你没写。
01:04
啊好,而我们去实现动画呢,又分为两种可能性,一个呢是编码的方式,一个是插码的方式。好。先我可以给大家简单的看一下布局结构。这个布局呢,看起来代码很多,其实非常简单。大家来看。你说这是个什么布局外围。大家看垂直的线性吧,接着是什么布局,是不是水平的线性呢?水平的线性,水平的线性,接着这是个八坦对吧,这是个八坦,哎,这个里面来看到下面啊,下面一个这是一个什么。图片吧,下面是一个是不是text you啊啊text好了。来,我们现在呢?是不是要对imagine you来做一个视图动画吧?
02:05
OK,所以说呢,我们需要去把这一个视图给得到。了吧,这一个呢,是用来去显示那个需求的,你在这个下面。大家看啊。能看懂吧,我一点它就对应的需求就出来了,我们就照着这个需求写就行。嗯。好,这是这里面的啊,监听都已点击监听呢,都已经加上了。下面的问题就是写它。好,我们现在呢,一个一个来做,不着急啊,先来看一下有一个概念。叫视图动画的一个分类,它可以分为两种,一个叫单一动画,一个叫什么呢?复合动画。啊,一个叫animation,一个叫animation,你说他们俩是什么关系?
03:00
啊。大家看啊,我们有一个animation类是吧?啊animation呢,它有很多孩子吧。我们来看一下。是不是有个mision site呀?哎,这个东西似曾相识。对,和就是这样一个意思。那说明我们animation里面包含了什么?是不是多没写呢?哎,就是这么回事。如果你能够去啊,看到它,能够想到以前的我们的view和view group啊,说明你对我们前面的知识有了一定的了解,一定理解以后,就有这种联想的功能啊。好,它还有一些其他的实现,我们接着往下看啊。在这里面呢,我们先来看一下,以单一动画分为缩放动画scale,透明动画阿尔法里面写旋转。
04:04
叫什么?Rotate里面写平移translate这些单词,这些单词认识起来,如果你们认识对你有很大的帮助。啊。啊。下面是复合动画,它有多个单一动画组合在一起。新神复动画。嗯,有这样一个继承关系,大家应该能看到吧,嗯,啊。啊。下面呢,在写他们之前,我们先可以给大家介绍一下animation它的公用的功能,哎,你说我在说它的公用功能是说什么东西去啊。一个对象,它的功能是通过什么来表现出来的?是不是方法呀,啊,当然以后啊,就是进了公司以后,很有可能跟你交流的时候,他不会说方法,而说我们,诶这个你去学这个东西到底有什么功能呢。
05:01
实际上是问你那个类定义哪些方法对吧,你一个对象要去完成一个功能,必须调用方法才能完成吧。对二。好,下面首先看这一个。其实大家都能理解,一看就能懂,这是第一个。设置持续的时间,我一个动画是不是持续时间呢?嗯,对,好这个。这什么意思?到ET叫延迟,也就是说我调用后面启动以后,它并不是马上就开始动画,而是什么呢?延迟启动能理解吧?啊,还有一个这个set fair before set fair after fair是固定的意思。你看这里说,假设我一个说完的话,我从这么小啊变得这么大。你说set set等于two的话,什么意思?我的动画结束以后,我到底停在哪个状态下面对不对?
06:06
啊,这一个呢,是说停在的是最终的状态,能理解吧,嗯,下面这一个跟大家说一下。啊,它其实是停留在我们的初始状态。就本来他的状态啊。好,下一个。这什么意思,是不是监听呢?哎,你说那个监听,他监听哪些东西,我们虽然说我们还还没说啊,大家其实通过你今天学的知识,你就可以想。他可以监听哪些东西?这动画有很多特殊的时刻,对不对,譬如说开始。PD说什么结束,这两个是必须知道的吧,还有一个其实重步就是我的我一个动画选择100度,我是不是就重画啊啊,我可以重复的去执行某一个动画,重复的时候呢,它也有这个知不知道都没关系啊,等会给跟大家说啊,下面这个不太好整。
07:05
坐标的类型,好,我给大家举个例子啊,假设这是个图片。我现在呢,要按这个图片视图呢进行旋转。你说需要哪些数据,我指定。啊,不要不用说这些啊,除了这些还有别的哪些,我要旋转需要指定什么,是不是开始的角度吧,是吧,开始是一个什么角度,还有一个什么,结束是一个角什么角度吧,还有什么。在哪旋转什么意思?是支点,或者说旋转的中心点是什么,对不对?那旋转的中心点是什么呢?这个就不太好说了,对吧,有可能。是这里很有可能吗?这个可能是最多的,对吧,正中间旋转,那也有可能是这里。
08:02
那也有可能是吗?是这里对不对,好了。那下面的问题就是说我旋转中心点是不是要计算坐标啊,那坐标它的中心点就是它原点在哪里呢?大家觉得。我要这样,这个试图转。你说它原点在哪?我们计算原点的时候,无非就两种可能性,一种是屏幕的着顶点,一种是视图的着顶点。大家觉得用哪个方便啊,视图的着力点比较方便一点,你要是屏幕的着力点,你是不是还要计算呢,对吧?默认的原点就是视图的左顶点。能理解吧,那你说我我要我要它旋转,你说坐标写几啊。学什么零零呗,对不对,这个好整吧,好,那下面如果我要指定它了。
09:06
这个就是1/2的宽高啊。对吧,但是它这个地方提供了两三种计算坐标的方式。就计算这个值的方式啊,最终我要求出这个值对吧,你我们刚才计算的方式就是1/2的1/2的宽和1/2的高是吧,是这意思吧,哎,这个地方啊,就写需要写两个0.5就可以。这个时候是按什么样的坐标类型来计算呢?Relative self什么意思?相对于自己?也就是说,如果我指定坐标类型是相对于自己,那你写两个0.5就可以了。这个能理解吧,能理解好啦,那如果我去写,相当于负心是0.50.5吗。那很有可能不是。
10:01
因为我的这个负心的视图,如果说跟我一样的宽高,那可以。对吧,假设。他的胖高这么大。这个时候就不对了吧,那我接着再写0.5 0.5很有可能。是不是到这里来了?是有个人甚至到外面来了吧?能理解吗?因为他是不是要根据这个0.5去乘以那个视图的宽和高啊。得出一个值啊,相对于它去取那个坐标吧。你户型很有可能比例宽高要大一些,现在大家有个基本的理解啊,你说这个什么意思。什么叫绝对值呢?直接写多少个像素,比如说写100 100什么意思啊。相对于这一个着顶点是一百一百的位置的坐标啊,为中心点吧。
11:02
这就写一个绝对值。而我们下面两个都写的什么相对值?我们要写的相对值,你说他背后做了什么事?它是不是要转换成绝对值啊,因为最终的最终它是不是都要计算在屏幕上的某一个点呢?嗯,所以它会帮我计算,你说老师都写绝对值多好啊。关键绝对值,我有时候我是不是觉得算了。你看我要拼的时候,我在正中间,我要写绝对值,我是不是要先得出宽高啊?那多麻烦了是吧?直接写什么相当于自己接着再写。0.5 0.5就得了。那不轻松很多吗?对不对,让他帮我算,我就不算了,这是经常有用的一种情况啊,大家需要去注意。好,下面就如何来启动动画。记住啊,先要一定要知道是谁来启动动画。
12:02
哎,为什么试图启动动画了?因为你三四图动啊,那不能让谁启动对吧。啊,启动一个动画,传入一个动画对象,这个应该好理解,下面一个结束动画,结束动画它不是什么,是Bo,它是什么呢?清空动画对吧,肯定有那里危险。啊,这是这一个下面监听器是不是三个方回调方法吧,按start an end按什么。Repeat重复啊,这是它的一些公用的功能啊,我呢先把它停下来,停下以后我们再去讲说话啊。
我来说两句