Android中,若要刻一個slide功能的程式或者做物件的進出場,可以透過ViewFlipper來完成

main.xml中必須先用ViewFlipper這個元素將你要的物件包覆在裡面
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"
    android:background="#FFF" 
>
    <ViewFlipper 
		android:id="@+id/viewflipper"   
		android:layout_width="fill_parent"
		android:layout_height="300px" 
		android:background="#666"
	>
		<ImageView
		android:id="@+id/fire"
		android:layout_width="256px"
		android:layout_height="256px"
		android:src="@drawable/fire"
		/>
		  
		<ImageView
		android:id="@+id/fire"
		android:layout_width="256px"
		android:layout_height="256px"
		android:src="@drawable/fire2"
		/>
		
	</ViewFlipper>
	<Button
		android:id="@+id/bu"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:text="next"
	/>
</LinearLayout>

Java程式:

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ViewFlipper;

public class MovePicActivity extends Activity {
    
	ViewFlipper vf;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Button bu = (Button) findViewById(R.id.bu);
        
        
        vf = (ViewFlipper)this. findViewById(R.id.viewflipper);
        
        // 設定 ViewFlipper 的進出動畫配置
        vf.setInAnimation(AnimationUtils.loadAnimation(this, R.layout.in));
        vf.setOutAnimation(AnimationUtils.loadAnimation(this, R.layout.out));
        
        // 動畫開始
        vf.startFlipping();
        
        //按下next button後切換到下張view
        bu.setOnClickListener(new OnClickListener(){
        	public void onClick(View w){
        		vf.showNext();
        	}
        });
        
    }
}

在主程式中你會看到進出場動畫我用了兩個檔案in.xml和out.xml,
其實這兩支程式就是動畫的設定檔

in.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
  <!--  X 軸 20→600時間 1000 毫秒 -->
  <translate android:fromXDelta="20"
             android:toXDelta="600"
             android:duration="5000" />
  <!--  從 透明 到 不透明 時間 1000 毫秒 -->
  <alpha android:fromAlpha="0.0"
         android:toAlpha="1.0"
         android:duration="1000" />
</set>

out.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
  <!--  X 軸 600→20時間 1000 毫秒 -->
  <translate android:fromXDelta="600"
             android:toXDelta="20"
             android:duration="5000" />
  <!--  從 不透明 到 透明 時間 1000 毫秒 -->
  <alpha android:fromAlpha="1.0"
         android:toAlpha="0.0"
         android:duration="1000" />
</set>
Categories: Android