歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android開發:Animation的巧妙使用

為了給UI做出一些比較炫的效果,往往要使用多種Animation結合使用或者是多個控件同時使用一種Animation。而後者需要按照一定規律來使用,下面是具體實例:

現在要做的其實和這個 http://www.linuxidc.com/Linux/2012-02/55174.htm 差不多,不同的現在要做一個動畫效果就是當點擊Start按鈕時,左邊四個按鈕會依次以減速運動出現,該效果會給人一種不一樣的感覺,能增加用戶的體驗。

和這個(Android 自定義Button 及Animation的基本使用 )不同的就是重新定義了幾個anim文件夾下的xml文件:

其中一個內容如下:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:Android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <translate  
  5.         android:startOffset="1500"  
  6.         android:duration="5000"  
  7.         android:fromXDelta="-100%"  
  8.         android:fromYDelta="0%"  
  9.         android:interpolator="@android:anim/decelerate_interpolator"  
  10.         android:toXDelta="0%"  
  11.         android:toYDelta="0%" />  
  12.   
  13. </set>  

其余的就是在startOffset上面的更改,意思是當啟動這個Animation時延遲多少毫秒,每個定義的Animation都比上一個晚一點,而每個Button依次綁定各個xml文件所以就有了依次出現的效果

這是Activity代碼:

  1. package sina.CreAmazing.muti_button;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.view.View;  
  6. import android.view.View.OnClickListener;  
  7. import android.view.animation.AnimationUtils;  
  8. import android.widget.Button;  
  9.   
  10. public class MutiButtonActivity extends Activity {  
  11.     /** Called when the activity is first created. */  
  12.   
  13.     private Button btStart;  
  14.     private Button bt1;  
  15.     private Button bt2;  
  16.     private Button bt3;  
  17.     private Button bt4;  
  18.   
  19.     @Override  
  20.     public void onCreate(Bundle savedInstanceState) {  
  21.         super.onCreate(savedInstanceState);  
  22.         setContentView(R.layout.main);  
  23.   
  24.         findViews();  
  25.         btStart.setOnClickListener(new OnClickListener() {  
  26.   
  27.             @Override  
  28.             public void onClick(View v) {  
  29.                 // TODO Auto-generated method stub   
  30.                 startAnimation();  
  31.             }  
  32.         });  
  33.     }  
  34.   
  35.     private void findViews() {  
  36.         // TODO Auto-generated method stub   
  37.         btStart = (Button) findViewById(R.id.bt_start);  
  38.         bt1 = (Button) findViewById(R.id.bt1);  
  39.         bt2 = (Button) findViewById(R.id.bt2);  
  40.         bt3 = (Button) findViewById(R.id.bt3);  
  41.         bt4 = (Button) findViewById(R.id.bt4);  
  42.     }  
  43.   
  44.     private void startAnimation() {  
  45.         bt1.startAnimation(AnimationUtils.loadAnimation(this,  
  46.                 R.anim.bt_translate1));  
  47.         bt2.startAnimation(AnimationUtils.loadAnimation(this,  
  48.                 R.anim.bt_translate2));  
  49.         bt3.startAnimation(AnimationUtils.loadAnimation(this,  
  50.                 R.anim.bt_translate3));  
  51.         bt4.startAnimation(AnimationUtils.loadAnimation(this,  
  52.                 R.anim.bt_translate4));  
  53.     }  
  54. }  

其實還可通過Animation制作出更多有趣的效果,反著退出去,以一定軌跡旋轉進入,閃爍顯示,電影裡那種報紙頭條旋轉變大顯示。。。。。。只要自己善於觀察,就會發現很多有趣的事情

Copyright © Linux教程網 All Rights Reserved