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>