欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

android笔记之动画效果篇

程序员文章站 2024-03-25 23:38:28
...

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);
相关标签: android 笔记