Android教程五:Android animation动画特效制作


如同往常一样建立Andoid应用
本次名字叫AnimationTest
在res目录下新建目录 anim
anim目录下新建一个XML 名字为simple_animation.xml
内容如下

<?xml version="1.0" encoding="UTF-8"?>   
<set xmlns:android="http://schemas.android.com/apk/res/android">   
 
    <!--    
        Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效   
 
        Alpha:渐变透明度动画效果   
        Scale:渐变尺寸伸缩动画效果   
        Translate:画面转换位置移动动画效果   
        Rotate:画面旋转动画效果   
 
        Tween Animation 通用属性[类型]    功能     
            Duration[long]  属性为动画持续时间   时间以毫秒为单位   
            fillAfter [boolean] 当设置为true ,该动画转化在动画结束后被应用   
            fillBefore[boolean] 当设置为true ,该动画转化在动画开始前被应用   
 
            interpolator    指定一个动画的插入器  有一些常见的插入器   
            accelerate_decelerate_interpolator   
            加速-减速 动画插入器   
            accelerate_interpolator   
            加速-动画插入器   
            decelerate_interpolator   
            减速- 动画插入器   
            其他的属于特定的动画效果   
            repeatCount[int]    动画的重复次数    
            RepeatMode[int] 定义重复的行为 1:重新开始  2:plays backward   
            startOffset[long]   动画之间的时间间隔,从上次动画停多少时间开始执行下个动画   
            zAdjustment[int]    定义动画的Z Order的改变 0:保持Z Order不变   
            1:保持在最上层   
            -1:保持在最下层 
     -->   
    <!--   
        透明控制动画    
     -->   
    <alpha   
        android:fromAlpha="0.1"    
        android:toAlpha="1.0"   
        android:duration="3000"   
    />   
 
    <!-- 尺寸伸缩动画效果 scale   
 
        属性:interpolator 指定一个动画的插入器   
 
        有三种动画插入器:   
         accelerate_decelerate_interpolator  加速-减速 动画插入器   
         accelerate_interpolator        加速-动画插入器   
         decelerate_interpolator        减速- 动画插入器   
 
        其他的属于特定的动画效果   
 
            fromXScale 属性为动画起始时 X坐标上的伸缩尺寸       
            toXScale   属性为动画结束时 X坐标上的伸缩尺寸        
 
            fromYScale 属性为动画起始时Y坐标上的伸缩尺寸       
            toYScale   属性为动画结束时Y坐标上的伸缩尺寸       
 
            说明:   
                 以上四种属性值       
                    0.0表示收缩到没有    
                    1.0表示正常无伸缩        
                    值小于1.0表示收缩     
                    值大于1.0表示放大   
 
            pivotX     属性为动画相对于物件的X坐标的开始位置   
            pivotY     属性为动画相对于物件的Y坐标的开始位置   
            说明:   
                    以上两个属性值 从0%-100%中取值   
                    50%为物件的X或Y方向坐标上的中点位置   
        长整型值:   
            duration  属性为动画持续时间   
            说明:   时间以毫秒为单位   
 
        布尔型值:   
            fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用   
    -->   
    <scale 
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"   
        android:repeatCount="1"   
 
        android:fromXScale="0.5"   
        android:fromYScale="0.5"   
        android:toXScale="1.4"         
        android:toYScale="1.4"   
        android:pivotX="50%"   
        android:pivotY="50%"   
        android:fillAfter="false"   
        android:duration="3000"   
 
    />   
    <!--    
        画面转换位置移动动画效果 translate   
 
        fromXDelta toXDelta 为动画、结束起始时 X坐标上的位置      
        fromYDelta toYDelta 为动画、结束起始时 Y坐标上的位置   
     -->   
 
    <translate   
        android:repeatCount="2"   
        android:fromXDelta="-30"   
        android:fromYDelta="-30"   
        android:toXDelta="-80"         
        android:toYDelta="200"   
        android:duration="3000"   
    />   
    <!--    
        画面转移旋转动画效果 rotate   
 
        fromDegrees 为动画起始时物件的角度 说明   
            当角度为负数——表示逆时针旋转   
            当角度为正数——表示顺时针旋转   
            (负数from——to正数:顺时针旋转)   
            (负数from——to负数:逆时针旋转)   
            (正数from——to正数:顺时针旋转)   
            (正数from——to负数:逆时针旋转)   
            toDegrees   属性为动画结束时物件旋转的角度 可以大于360度   
        pivotX   
        pivotY  为动画相对于物件的X、Y坐标的开始位  说明:以上两个属性值 从0%-100%中取值   
        50%为物件的X或Y方向坐标上的中点位置   
     -->   
    <rotate   
        android:interpolator="@android:anim/accelerate_interpolator"   
        android:repeatCount="2"   
        android:fromDegrees="0"   
        android:toDegrees="+270"   
        android:pivotX="50%"   
        android:pivotY="50%"   
        android:duration="3000"   
    />   
 
</set>

打开activity_main.xml
拖拉一个button
(我目前采用的版本默认有一个textview1,如果你的没有,在界面上拖拉一个textview)

打开MainActivity.java

package com.javaer.animationtest;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.TextView;
 
public class MainActivity extends Activity {
	 Animation mAnimation ;   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);//我们activity_main对应了activity_main.xml
 
 
        mAnimation = AnimationUtils.loadAnimation(this, R.anim.simple_animation);   
//simple_animation对应了simple_animation.xml
 
       // 点击按钮效果,我们之前学过的哦。
        Button button = (Button) this.findViewById(R.id.button1);
        button.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
            	 TextView text = (TextView)findViewById(R.id.textView1);   
                 text.setAnimation(mAnimation);   
            	mAnimation.start();//执行动画效果
            }
        });
 
 
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

点击button以后,会看见文字开始旋转,出现漂亮的动画特效。

换成图片就可以是图片动画特效了。

如果你是一名技术人员可加我QQ 2651-0442-02,如果你是java技术人还可以加入QQ群 1784-9136-0
你将得到的不仅仅是技术的交流,还有职业机会,人生解惑.
首发地址:月小升博客https://java-er.com/blog/android-animation-1/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
此条目发表在 JAVA 分类目录,贴了 , 标签。将固定链接加入收藏夹。
既然来了,就评论一下,不会怀孕的

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">