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>