Android動畫Animation的兩種載入執行方式

來源:互聯網
上載者:User

標籤:android

本文以簡單的AlphaAnimation(“淡入淡出(透明度改變)”動畫)為例,簡單的說明Android動畫Animation的兩種載入執行方法:
(1) 直接寫Java代碼,製作Android動畫。
(2) 寫XML設定檔,載入XML資源檔執行。
其實這兩者是一致的。要知道,在Android中,凡是可以在XML檔案完成的View,代碼亦可完全寫出來。
現在先給出一個Java程式碼完成的動畫AlphaAnimation,AlphaAnimation功能簡單,簡言之,可以讓一個View在一個給定時間內從一個透明度變成另外一個透明度。0.0f是完全透明,1.0f是完全不透明。

A。第一種做法,寫Java代碼實現。

測試用的主Activity很簡單,就一個置中顯示的TextView,顯示一串文字:Android動畫,該TextView啟動後在3秒內從完全透明漸層到完全不透明。MainActivity.java :

package zhangphil.animation;import android.app.Activity;import android.os.Bundle;import android.view.animation.AlphaAnimation;import android.view.animation.AnimationSet;import android.widget.TextView;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView text = (TextView) findViewById(R.id.text);// “淡入淡出”動畫。// 0.0f,完全透明,// 1.0f,完全不透明。AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);alphaAnimation.setDuration(3000);// 動畫集。AnimationSet animationSet = new AnimationSet(false);animationSet.addAnimation(alphaAnimation);// 開始播放動畫。text.startAnimation(animationSet);}}

MainActivity.java需要的activity_main.xml布局檔案:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <TextView        android:id="@+id/text"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_centerVertical="true"        android:gravity="center"        android:textSize="30sp"        android:text="Android動畫" /></RelativeLayout>

這是第一種Java代碼寫法。


B。第二種做法,寫XML檔案實現。


介紹第二種XML寫法。MainAvtivity.java:

package zhangphil.animation;import android.app.Activity;import android.os.Bundle;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.TextView;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView text = (TextView) findViewById(R.id.text);// 初始化需要載入的動畫資源Animation animation = AnimationUtils.loadAnimation(this, R.anim.my_anim);// 將TextView執行Animation動畫text.startAnimation(animation);}}


MainActivity.java需要的activity_main.xml檔案不做任何修改和上述的A相同。

複雜代碼工作轉嫁到定義anim的XML。

一,需要在res/目錄下建立一個anim檔案夾,在裡面建立一個Android資源檔,假設這個名字自訂為my_anim.xml。目錄結構層次:


二,完成動畫所需要的控制要素集代碼,my_anim.xml具體代碼:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/accelerate_interpolator" >    <alpha        android:duration="3000"        android:fromAlpha="0"        android:toAlpha="1.0" />    <!--        透明度控制動畫效果 alpha        浮點型值:            fromAlpha 動畫起始時透明度            toAlpha   動畫結束時透明度            說明:                 0.0表示完全透明                1.0表示完全不透明            以上值取0.0-1.0之間的float資料類型的數字                整數:            duration  動畫期間            說明:                     時間以毫秒為單位    --></set>


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。轉載請註明出處:http://blog.csdn.net/zhangphil

Android動畫Animation的兩種載入執行方式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.