视图动画主要有两种:
一、Tween Animation
译为“补间动画”
1、scale
译为“规模、比例”,是对View进行特定范围的缩放
2、alph
a通过改变View的透明度实现View隐现的效果
3、translate
译为"转移",是对View进行位置的移动
4、rotate
译为“旋转”,是让View围绕特定的点进行旋转
PS:所有View的移动、隐藏、旋转仅仅是看到的动画效果,实际View的位置/大小/比例并没有发生本质上的改变(比如说View的位置通过动画进行移动后你注册的点击事件还是需要点击到View的原始位置才可以被触发)。
二、Frame Animation
译为逐帧动画
这个比较容易理解就是将多个具有特定连贯动作的图片在短时间内进行快速的切换达到动画的效果,本质上所有的动画效果都是这种思想。
如何创建视图动画文件目录
动画文件要存放在res/anim文件夹下,访问时采用R.anim.XXX的方式。默认是没有这个文件夹的需要手动创建(右键res目录–>New–>Android Resource Directory–>确定。)
动画文件的创建方式为:右键anim
文件夹选择new,然后点击Animation Resource file,选择动画类型即可创建。
输入后会自动提示动画名称,然后输入名称,确定即可。
scale(缩放) 动画
这个动画参数相对来说比较多, 就我个人而言在学习这个动画的时候花费时间是最长的。这个动画主要是实现View的缩放,首先要想,要实现一个缩放的动画首先要确定什么参数/信息(好比说想切割一张特定大小的纸张要确定宽和高一样),那么第一个就是要确定要围绕哪个点(pivot)进行缩放。还需要知道在动画开始(from)时View的大小(比例),以及动画结束(to)时View要处于的大小(比例)。就是要确定以下六个参数才可以完成一次缩放动画。
X则指定控件的宽度,Y则指定控件的高度,值越大则控件所占位置越大。Android坐标从左上角开始算起。
其中fromXScale
、toXScale
、fromYScale
、toYScale
使用浮点类型,1.0表使原始大小,0.5则是缩放一半,1.5则是扩大原大小的一半。举例:原View宽高100、150,1.0:(100,150),0.5:(50,75),1.5:(150,225)。也可以使用精确值(DP/PX)。
pivotX
、pivotY
有三种表使方法,第一是采用像素值,第二则是较自身的百分比,第三则是较父View的百分比。
为了方便观察,使用两个同等位置和大小不同颜色的View来进行观察。动画的播放代码在最下文已给出。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button android:layout_width="match_parent" android:layout_height="wrap_content"
android:text="播放动画"
android:id="@+id/btnOpenAnimation"
/>
<TextView android:layout_width="300dp" android:layout_height="300dp"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:background="#03