用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="
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