Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 【Android基礎知識】Drawable Animation和View Animation

【Android基礎知識】Drawable Animation和View Animation

編輯:關於Android編程

Android中的動畫主要分為三類

1.Drawable Animation

2.View Animation

3.Property Animation

這裡介紹其中的兩類,Drawable Animation(逐幀動畫)和View Animation

Drawable Animation 逐幀播放每一張圖片,就好像動畫播放一樣。

View Animation 包括 平移動畫 translate 、縮放動畫 scale 、旋轉動畫 rotate 、漸變動畫 alpha

Drawable Animation (逐幀動畫)

我們使用animation-list 來定義動畫xml文件,在工程res的anim文件夾或者drawable文件夾下建立我們的動畫文件

anim_list.xml

 




    
    
    
    
    
    
使用AnimationDrawable 啟動動畫,代碼如下,調用stop可以停止動畫

 

 

private AnimationDrawable walkDrawable;
image.setImageResource(R.drawable.anim_list);
			walkDrawable = (AnimationDrawable)image.getDrawable();
			walkDrawable.start();

 

\

View Animation

在代碼中定義動畫這裡不做介紹,主要介紹在xml中定義動畫 漸變動畫



    
    

縮放動畫


    
平移動畫


    
旋轉動畫


    
加載xml動畫的方式為
Animation loadAnimation;
loadAnimation = AnimationUtils.loadAnimation(this, R.anim.xxx);
view.startAnimation(loadAnimation);
縮放效果 \  
旋轉效果 \   透明度效果 \ 平移效果 \ 動畫續播1,動畫1播放完畢後播放動畫2,這裡使用了動畫監聽器,監聽到動畫1播放完畢的時候開始播放動畫2
loadAnimation = AnimationUtils.loadAnimation(this, R.anim.translate);
			image.startAnimation(loadAnimation);
final Animation loadAnimation2 = AnimationUtils.loadAnimation(this,
					R.anim.rotate);
			//給動畫1設置監聽
			loadAnimation.setAnimationListener(new AnimationListener() {

				@Override
				public void onAnimationStart(Animation arg0) {

				}

				@Override
				public void onAnimationRepeat(Animation arg0) {

				}

				@Override
				public void onAnimationEnd(Animation arg0) {
					//動畫1播放完畢播放動畫2
					image.startAnimation(loadAnimation2);
				}
			});
\ 動畫續播2:直接在xml文件中進行動畫的定義



    
    

調用
loadAnimation = AnimationUtils.loadAnimation(this,R.anim.continue_anim);
image.startAnimation(loadAnimation);
\

閃爍效果,有透明變為不透明,設置倒序重復模式
//閃爍效果
			AlphaAnimation alphaAnimation = new AlphaAnimation(0.1f, 1.0f);
			alphaAnimation.setDuration(100);
			alphaAnimation.setRepeatCount(10);
			//倒序重復REVERSE  正序重復RESTART
			alphaAnimation.setRepeatMode(Animation.REVERSE);
			image.startAnimation(alphaAnimation);
\   抖動動畫,就是左右平移,和閃爍效果一樣,也是設置反向重復模式
TranslateAnimation translate = new TranslateAnimation(-50, 50,
					0, 0);
			translate.setDuration(1000);
			translate.setRepeatCount(Animation.INFINITE);
			translate.setRepeatMode(Animation.REVERSE);
			image.startAnimation(translate);
\ overridePendingTransition(設置界面切換動畫) zoom_in.xml


  
  
  
zoom_out.xml


    
    
設置界面跳轉動畫
overridePendingTransition(R.anim.zoom_in,R.anim.zoom_out);
\

ListView布局動畫,多個item同時執行一種效果。如果我們需要一個界面中的多個控件按照相同的動畫方式但是每個控件完成該動畫的時刻不同的話,就可采用LayoutAnimationController
LayoutAnimationController lac=new LayoutAnimationController(AnimationUtils.loadAnimation(this, R.anim.zoom_in));
	    //順序播放
	    lac.setOrder(LayoutAnimationController.ORDER_NORMAL);
	    listView.setLayoutAnimation(lac);
	    listView.startLayoutAnimation();
\    

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved