安卓之--动画效果的实现

在res文件目录下,新建一个anim的文件夹,用于存放动画效果的xml文件

安卓之--动画效果的实现_第1张图片

 

2、我把所有的动画效果放到set.xml文件中了,在这里可以实现所有动画的效果,每个效果下面都有注释,解释是什么意思

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    android:shareInterpolator="false" >

    <set android:interpolator="@android:anim/decelerate_interpolator" >
        <scale
            android:duration="2000"
            android:fromXScale="0.2"
            android:fromYScale="0.2"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toXScale="1.5"
            android:toYScale="1.5" />

        <!--
fromXScale:表示沿着x轴缩放的起始比例
toXScale:表示沿着x轴缩放的结束比例

fromYScale:表示沿着y轴缩放的起始比例
toYScale:表示沿着y轴缩放的结束比例

图片中心点:
  android:pivotX="50%" 
    android:pivotY="50%"

        -->

        <rotate
            android:duration="2000"
            android:fromDegrees="0"
            android:repeatCount="1"
            android:repeatMode="reverse"
            android:toDegrees="360" />

        <!--
fromDegrees:表示旋转的起始角度
toDegrees:表示旋转的结束角度
repeatCount:旋转的次数    默认值是0   如果是4的话就旋转5次   如果repeatCount=-1或是infinite则表示循环旋转

repeatMode:默认值为restart    模式要想其作用   repeatCount值必须大于0 或者是-1
reverse表示反转

        -->

        <alpha
            android:duration="2000"
            android:fromAlpha="1.0"
            android:toAlpha="0.1" />

        <!--
fromAlpha:起始透明度
toAlpha:结束透明度
1.0表示完全不透明
0.0表示完全透明

        -->

        <translate
            android:duration="2000"
            android:fromXDelta="0"
            android:fromYDelta="0"
            android:toXDelta="320"
            android:toYDelta="0" />

        <!--
  android:interpolator 动画的渲染器
  1、accelerate_interpolator(动画加速器) 使动画在开始的时候 最慢,然后逐渐加速
  2、decelerate_interpolator(动画减速器)使动画在开始的时候 最快,然后逐渐减速
  3、accelerate_decelerate_interpolator(动画加速减速器)
           中间位置分层:  使动画在开始的时候 最慢,然后逐渐加速
           
                                                  使动画在开始的时候 最快,然后逐渐减速  结束的位置最慢
 fromXDelta  动画起始位置的横坐标
 toXDelta    动画起结束位置的横坐标
 
 
 fromYDelta  动画起始位置的纵坐标
 toYDelta   动画结束位置的纵坐标
 
 duration 动画的持续时间

        -->
    </set>

</set>

 

3、MainActivity中的代码:

package com.example.lession19_tween;

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.ImageView;

public class MainActivity extends Activity {
	
	public ImageView imageView;
	public Button button;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		button=(Button) findViewById(R.id.button1);
		imageView=(ImageView) findViewById(R.id.imageView1);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
	
	public void animImpl(View v){
		Animation animation=AnimationUtils.loadAnimation(this,R.anim.set);
		imageView.startAnimation(animation);
	}
	
	/*public void animImpl(){
		Animation animation=AnimationUtils.loadAnimation(this,R.anim.alpha_demo);
		imageView.startAnimation(animation);
	}
	
	public void animImpl2(){
		Animation animation=AnimationUtils.loadAnimation(this,R.anim.rotate_demo);
		imageView.startAnimation(animation);
	}*/

}


 


 

你可能感兴趣的:(安卓之--动画效果的实现)