您的位置:首页 > 移动开发 > Android开发

android上下左右滑动

2013-03-08 16:56 519 查看
由于赶项目比较忙,以后再细化.现在只提供代码

package com.example.blueapp;

import android.app.Activity;

import android.os.Bundle;

import android.view.GestureDetector;

import android.view.GestureDetector.OnGestureListener;

import android.view.MotionEvent;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.Window;

import android.view.animation.AnimationUtils;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.ViewFlipper;

public class TestActivity extends Activity implements OnGestureListener {

private ViewFlipper flipper;

private GestureDetector detector;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE); // 无标题

setContentView(R.layout.activity_main);

detector = new GestureDetector(this);

flipper = (ViewFlipper) findViewById(R.id.details);

findViewById(R.id.Button_next1).setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

flipper.showNext();

}

});

findViewById(R.id.Button_next2).setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

flipper.showNext();

}

});

findViewById(R.id.Button_next3).setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

flipper.showNext();

}

});

}

@Override

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,

float velocityY) {

// TODO Auto-generated method stub

System.out.println("...onFling...");

if (e1.getX() - e2.getX() > 120) {

this.flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));

this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));

this.flipper.showNext();

return true;

} else if (e1.getX() - e2.getX() < -120) {

this.flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_in));

this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_out));

this.flipper.showPrevious();

return true;

} else if (e1.getY() - e2.getY() > 120) {

this.flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_in));

this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_out));

this.flipper.showNext();

return true;

} else if (e1.getY() - e2.getY() < -120) {

this.flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_in));

this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_out));

this.flipper.showPrevious();

return true;

}

return false;

}

private View addTextView(int id) {

ImageView iv = new ImageView(this);

iv.setImageResource(id);

return iv;

}

@Override

public boolean onTouchEvent(MotionEvent event) {

// TODO Auto-generated method stub

return this.detector.onTouchEvent(event);

}

@Override

public boolean onDown(MotionEvent e) {

// TODO Auto-generated method stub

return false;

}

@Override

public void onLongPress(MotionEvent e) {

// TODO Auto-generated method stub

}

@Override

public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,

float distanceY) {

// TODO Auto-generated method stub

return false;

}

@Override

public void onShowPress(MotionEvent e) {

// TODO Auto-generated method stub

}

@Override

public boolean onSingleTapUp(MotionEvent e) {

// TODO Auto-generated method stub

return false;

}

}

activity_main.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">

<ViewFlipper android:id="@+id/details"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:persistentDrawingCache="animation"

android:flipInterval="1000"

android:inAnimation="@anim/push_left_in"

android:outAnimation="@anim/push_left_out"

>

<LinearLayout

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<Button

android:text="Next"

android:id="@+id/Button_next1"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

</Button>

<ImageView

android:id="@+id/image1"

android:src="@drawable/widget_head_bg"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

</ImageView>

</LinearLayout>

<LinearLayout

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<Button

android:text="Next1"

android:id="@+id/Button_next2"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

</Button>

<ImageView

android:id="@+id/image2"

android:src="@drawable/ic_launcher"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

</ImageView>

</LinearLayout>

<LinearLayout

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<Button

android:text="Next2"

android:id="@+id/Button_next3"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

</Button>

<ImageView

android:id="@+id/image3"

android:src="@drawable/ic_launcher"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

</ImageView>

</LinearLayout>

</ViewFlipper>

</LinearLayout>

push_left_in.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android" >

<translate

android:duration="500"

android:fromXDelta="100%p"

android:toXDelta="0" />

<alpha

android:duration="500"

android:fromAlpha="0.1"

android:toAlpha="1.0" />

</set>

push_left_out.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android" >

<translate

android:duration="500"

android:fromXDelta="0"

android:toXDelta="-100%p" />

<alpha

android:duration="500"

android:fromAlpha="1.0"

android:toAlpha="0.1" />

</set>

push_right_in.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">

<translate android:fromXDelta="-100%p" android:toXDelta="0"

android:duration="500" />

<alpha android:fromAlpha="0.1" android:toAlpha="1.0"

android:duration="500" />

</set>

push_right_out.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">

<translate android:fromXDelta="0" android:toXDelta="100%p"

android:duration="500" />

<alpha android:fromAlpha="1.0" android:toAlpha="0.1"

android:duration="500" />

</set>

不懂就QQ 468903507 联系我~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: