android笔记之动画效果篇
android中的动画包括两种:
一.逐帧动画:就是一帧一帧的来播放图片
动画的效果实现:
1.设置xml文件,并设置文件参数
2.调用动画xml文件
举个例子:
设置xml文件:
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/img001" android:duration="60"></item>
<item android:drawable="@drawable/img002" android:duration="60"></item>
<item android:drawable="@drawable/img003" android:duration="60"></item>
<item android:drawable="@drawable/img004" android:duration="60"></item>
<item android:drawable="@drawable/img005" android:duration="60"></item>
<item android:drawable="@drawable/img006" android:duration="60"></item>
</animation-list>
可以看出标签是animation-list开头,之后加item标签drawble来指定路径,duration来指定显示时间。
接下来调用xml文件即可:如在layout中设置background属性为此xml文件。
以上就是逐帧动画
—-----------------------------------------------------------------------------------------------------------------------------------
二.补间动画:就是给出最后一帧和第一帧,其他帧系统自动补全。
补间动画的实现方法和上面差不多,也是先创建xml文件,之后调用xml文件。
一般来说有4种:包括AlphaAnimation(透明度海渐变动画)、RotateAnimation(旋转动画)、ScaleAnimation(缩放动画)、TranslateAnimation(平移动画)。我们分别来介绍:
创建一个anim资源文件,用于存放动画文件。
1.AlphaAnimation(透明度海渐变动画)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000" >
<alpha
android:fromAlpha="1"
android:toAlpha="0"/>
</set>
可发现是通过set标签来设置,补间动画的效果设置都是通过set标签来实现,其中duration表示所需时间;之后在通过alpha标签来设置透明度海渐变,fromAlpha是指从"1"开始,toAlpha表示到"0"结束,其中1表示完全不透明,0表示完全透明。
之后在调用即可。
如设置一个ImageView为其设置一张图片,调用imageview的startAnimation方法
Animation animation= AnimationUtils.loadAnimation(MainActivity.this,R.anim.alpha);
imageView.startAnimation(animation);
2.RotateAnimation(旋转动画)
用法和alpha差不多
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="10000">
<rotate
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"/>
</set>
其中duration表示所需时间;之后在通过rotate 标签来设置旋转,fromDegrees是指从"0"度开始,toDegrees表示到"360"度结束,pivotX表示以横坐标的一半为旋转中心,pivotY表示以纵坐标的一半为旋转中心。
之后在调用即可。
如设置一个ImageView为其设置一张图片,调用imageview的startAnimation方法
Animation animation= AnimationUtils.loadAnimation(MainActivity.this,R.anim.rotate);
imageView.startAnimation(animation);
3.ScaleAnimation(缩放动画)
用法和alpha差不多
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="5000">
<scale android:fromXScale="1" android:fromYScale="1"
android:toXScale="6" android:toYScale="6"
android:pivotX="50%" android:pivotY="50%"/>
</set>
其中duration表示所需时间;之后在通过scale标签来设置旋转,fromXScale是指从横坐标缩放度为1开始,fromYScaleto是指从纵坐标缩放度为1开始,toXScale指到横坐标缩放度为6结束,toYScale指到纵坐标缩放度为6结束,pivotX表示以横坐标的一半为缩放中心,pivotY表示以纵坐标的一半为缩放中心。(其中缩放度1就表示1倍,6表示6倍)
之后在调用即可。
如设置一个ImageView为其设置一张图片,调用imageview的startAnimation方法
Animation animation= AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale);
imageView.startAnimation(animation);
4.TranslateAnimation(平移动画)
用法和alpha差不多
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:repeatMode="reverse"
android:duration="2000">
<translate
android:repeatCount="infinite"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="300"
android:toYDelta="300"/>
</set>
其中duration表示所需时间;之后在通过translate标签来设置旋转,fromXDelta是指从横坐标0处开始移动,fromYDelta是指从纵坐标0处开始移动,toXDelta指到横坐标到300结束,toYDelta指到纵坐标到300结束,repeatCount表示循环次数(infinite代表无限循环),repeatMode循环方式(reverse表示反向,restart表示重新开始)。
之后在调用即可。
如设置一个ImageView为其设置一张图片,调用imageview的startAnimation方法
Animation animation= AnimationUtils.loadAnimation(MainActivity.this,R.anim.translate);
imageView.startAnimation(animation);
上一篇: Jquery特效欣赏 jquery焦点图js图片特效
下一篇: 使用docker安装MySQL