Android中補間動畫的實現之二

上篇博文中點擊打開鏈接我們在代碼中實現了補間動畫,那麼這篇博文中我們就使用佈局文件實現補間動畫。

實現步驟:

①在res文件夾下新建文件夾anim(必須是anim)

②在anim文件夾下創建不同效果的佈局文件:

alpha:淡入淡出

rotate:旋轉

scale:縮放

translate:平移
set:組合

③在代碼中引用我們定義的佈局文件

一、實現不同效果的佈局文件:

<?xml version="1.0" encoding="utf-8"?>
<!-- 淡入淡出 -->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromAlpha="0"
    android:toAlpha="1.0"
    android:duration="3000"
    android:repeatMode="restart"
    android:repeatCount="infinite">
    
</alpha>
<?xml version="1.0" encoding="utf-8"?>
<!-- 旋轉 -->
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:toDegrees="-360"
    android:pivotX="0.5"
    android:pivotY="0.5"
    android:duration="3000"
    android:repeatCount="infinite"
    >
    <!-- 
    android:pivotX="0.5"
    android:pivotY="0.5"
    用來確定中心點的,如果給出的值在0.0-1.0之間(0%-100%),表示以自身作爲參照點
    如果給出的值在0.0p-1.0p之間(0%p-100%p) 表示以父控件作爲參照點
     -->

</rotate>
<?xml version="1.0" encoding="utf-8"?>
<!-- 平移 -->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="3000"
    android:fromXDelta="10"
    android:fromYDelta="10"
    android:repeatMode="restart"
    android:toXDelta="50"
    android:toYDelta="50" >

<!--     當前圖片所處位置作爲原點
		fromXDelta:在原點的基礎上向右平移10個像素
		fromYDelta:在原點的基礎上向下平移10個像素
 -->

</translate>
<?xml version="1.0" encoding="utf-8"?>
<!-- 縮放 -->
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="0.0"
    android:toXScale="1"
    android:fromYScale="0.0"
    android:toYScale="1"
    
    android:duration="3000"
    android:repeatMode="restart"
    >
    

</scale>
<?xml version="1.0" encoding="utf-8"?>
<!-- 組合 -->
<set xmlns:android="http://schemas.android.com/apk/res/android"
    >
<alpha 
    android:fromAlpha="0.0"
    android:toAlpha="1"
    android:duration="2000"/>
<rotate 
    android:fromDegrees="0"
    android:toDegrees="-360"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="2000"/>    

</set>
<!-- 透明度+旋轉 -->

二、在代碼中的實現:

package com.example.text03;

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

public class MainActivity extends Activity {

	private ImageView iv;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		iv = (ImageView) findViewById(R.id.iv);
	}
	//淡入淡出
	public void dan(View view) {
		//將一個資源轉成了一個Animation對象
		iv.startAnimation(AnimationUtils.loadAnimation(this, R.anim.alpha_animation));
	}
	//旋轉
	public void turn(View view) {
		iv.startAnimation(AnimationUtils.loadAnimation(this, R.anim.rotate_animation));
	}
	//平移
	public void move(View view) {
		iv.startAnimation(AnimationUtils.loadAnimation(this, R.anim.translate_animation));
	}
	//縮放
	public void suofang(View view) {
		iv.startAnimation(AnimationUtils.loadAnimation(this, R.anim.scale_animation));
	}
	//組合
	public void zuhe(View view) {
		iv.startAnimation(AnimationUtils.loadAnimation(this, R.anim.set_animation));
	}

}

運行結果:







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章