歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android開發:Animation的巧妙使用

Android開發:Animation的巧妙使用

日期:2017/3/1 10:29:19   编辑:Linux編程

為了給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. <translate
  4. android:startOffset="1500"
  5. android:duration="5000"
  6. android:fromXDelta="-100%"
  7. android:fromYDelta="0%"
  8. android:interpolator="@android:anim/decelerate_interpolator"
  9. android:toXDelta="0%"
  10. android:toYDelta="0%" />
  11. </set>

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

這是Activity代碼:

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

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

Copyright © Linux教程網 All Rights Reserved