1. 程式人生 > >用Animation動畫實現Android應用的歡迎介面

用Animation動畫實現Android應用的歡迎介面

歡迎介面實現有多種方法,目前瞭解的實現方法包括

1) Animation;

2) 執行緒實現;

3) Handle實現;

本例子討論第一種方法,第二種目前已經瞭解,但是第三種還不瞭解。

雖然是轉載,但是原始碼不全也不詳細,可能有些人還是看不到最終處理結果,

這個程式碼包含了所有的程式碼和xml檔案。

1. 建立名為WelcomeDemo的專案,Activity的對應名稱為WelcomeDemoActivity;

2. 在res下建立anim目錄,並建立檔案welcome_alpha.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:fromAlpha="0.0" 
        android:toAlpha="1.0" 
        android:duration="2000"   
        /> 
    <alpha   
        android:fromAlpha="1.0" 
        android:toAlpha="0.0" 
        android:startOffset="3000"
        android:duration="3000"   
        /> 
</set>

3. 在WelcomeDemoActivity.java下的程式碼如下:

package zcping.hello.Welcomedemo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class WelcomeDemoActivity extends Activity implements AnimationListener {
    /** Called when the activity is first created. */
    private ImageView  imageView = null;  
    private Animation alphaAnimation = null;  
      
    @Override 
    protected void onCreate(Bundle savedInstanceState) {  
          
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.welcome);  
        imageView = (ImageView)findViewById(R.id.welcome_image_view);  
        alphaAnimation = AnimationUtils.loadAnimation(this, R.anim.welcome_alpha);  
        alphaAnimation.setFillEnabled(true); //啟動Fill保持  
        alphaAnimation.setFillAfter(true);  //設定動畫的最後一幀是保持在View上面  
        imageView.setAnimation(alphaAnimation);  
        alphaAnimation.setAnimationListener(this);  //為動畫設定監聽  
    }
    @Override 
    public void onAnimationStart(Animation animation) {  
          
    }  
      
    @Override 
    public void onAnimationEnd(Animation animation) {  
        //動畫結束時結束歡迎介面並轉到軟體的主介面  
        Intent intent = new Intent(this, MainActivity.class);  
        startActivity(intent);  
        this.finish();  
    }  
      
    @Override 
    public void onAnimationRepeat(Animation animation) {  
          
    }  
      
    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) {  
        //在歡迎介面遮蔽BACK鍵  
        if(keyCode==KeyEvent.KEYCODE_BACK) {  
            return false;  
        }  
        return false;  
    }    
}

4. 建立MainActiviy.java檔案用於建立主程式,作為呼叫歡迎介面後的主程式。

package zcping.hello.Welcomedemo;


import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

5. 對應於MainActivity.java的XML檔案如下main.xml;

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

</LinearLayout>

6.  對應於WelcomeDemoActivity.java的XML檔案welcome.xml如下:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"   
    android:gravity="center_vertical|center_horizontal"> 
    <ImageView 
        android:id="@+id/welcome_image_view"   
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:src="@drawable/welcome" 
        /> 
</LinearLayout>

7. 把歡迎介面welcome_image_view.png的圖片放到drawable目錄下。

執行結果如下:

原始碼可聯絡:QQ 99597951