2011年9月26日

Android使用AnimationListener建立小程式起動動畫


目標
使用setAnimationListener製作開啟動畫。

實作
每個動畫類別都可以設置它的動畫監聽器,這個監聽器可以監聽其動畫開始、重複執行、動畫結束三個部分,而這邊我們使用的是動畫結束部分來實作啟動動畫。

Layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <ImageView
       android:id="@+id/img"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:src="@drawable/icon"
       android:visibility="invisible" 
       />
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
</LinearLayout>

Activity.java
public class AppLoadingAnimationActivity extends Activity {
   private ImageView imageView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        imageView = (ImageView) findViewById(R.id.img);
       
        // 開啟動畫
        AlphaAnimation alphaAnimation = new AlphaAnimation((float) 0.1, 1);
        alphaAnimation.setDuration(2000);
        alphaAnimation.setAnimationListener(new AnimationListener() {
          @Override
          public void onAnimationStart(Animation animation) {
          }
         
          @Override
          public void onAnimationRepeat(Animation animation) {
          }
         
          @Override
          public void onAnimationEnd(Animation animation) {
              imageView.setVisibility(View.GONE);
          }
        });
       
        imageView.setAnimation(alphaAnimation);
        imageView.setVisibility(View.VISIBLE);
    }
}

如此一來就可以完成一個簡單的啟動動畫。

備註 : 如果你的應用是非常需要loading的請不要使用這個方法,請使用handler,確實的將結束訊號傳送並接受,這樣才能正確的結束啟動動畫。

沒有留言:

ShareThis