螢幕切換指的是在同一個Activity內螢幕見的切換。
通過GestureDetector、OnGestureListener實現滑屏事件。ViewFlipper是繼承至FrameLayout的,所以它是一個Layout裡面可以放置多個View。樣本中第一頁僅放了一個按鈕BUTTON,向下滑屏時,每頁都只放了一個TEXTVIEW。
頁面:
view plaincopy to clipboardprint?
<?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"
>
<ViewFlipperandroid:id="@+id/ViewFlipper01"
android:layout_width="fill_parent"android:layout_height="fill_parent">
</ViewFlipper>
</LinearLayout>
Activity代碼:
view plaincopy to clipboardprint?
package com.yfz;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
importandroid.view.GestureDetector.OnGestureListener;
import android.view.ViewGroup.LayoutParams;
importandroid.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ExpandableListView;
import android.widget.TextView;
import android.widget.ViewFlipper;
public class Flip extends Activity implements OnGestureListener{
privateGestureDetector detector;
privateViewFlipper flipper;
@Override
public voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
flipper
= (ViewFlipper)this.findViewById(R.id.ViewFlipper01);
flipper.addView(addButtonByText("按鈕"),new
LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
detector
= new GestureDetector(this);
}
public ViewaddButtonByText(String text){
Button
btn = newButton(this);
btn.setText(text);
returnbtn;
}
public ViewaddTextByText(String text){
TextView
tv = newTextView(this);
tv.setText(text);
tv.setGravity(1);
returntv;
}
@Override
publicboolean onTouchEvent(MotionEvent event) {
Log.i("Fling",
"Activity onTouchEvent!");
return
this.detector.onTouchEvent(event);
}
@Override