android左右滑动翻页查看图片

java部分代码

package com.xpc.onflingdemo;

import java.io.File;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.widget.ImageView;

public class MainActivity extends Activity implements // 手势事件监控接口
		android.view.GestureDetector.OnGestureListener {
	private GestureDetector gestureDetector = null;
	private ImageView img;
	private String filepath[];// 路径数组
	private int k = 0;

	@SuppressWarnings("deprecation")
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		File sd = Environment.getExternalStorageDirectory();
		String path = sd.getPath();// 获取当前手机储存路径storage
		filepath = new String[9];// 路径数组初始化
		for (int i = 0; i < filepath.length; i++) {
			filepath[i] = path + "/picturereceive/beautiful" + i + ".jpg"; // path后为手机图片路径运行,需要更改为自己手机中图片路径
		}
		img = (ImageView) findViewById(R.id.imageView1);
		gestureDetector = new GestureDetector(this); // 声明检测手势事件
		File file = new File(filepath[k]);// 设置初始背景图片
		if (file.exists()) {
			Bitmap bm = BitmapFactory.decodeFile(filepath[k]);
			img.setImageBitmap(bm);
		} else {
			System.out.println("<<<<<<<<<<<<<<<<<<<<" + filepath[k]);
			System.out.println("<<<<<<<<<<<<<<<<<<<Not Find picture[0]");
		}
	}

	@Override
	public boolean onTouchEvent(MotionEvent event) {
		return gestureDetector.onTouchEvent(event); // 注册手势事件
	}

	@Override
	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
			float velocityY) {
		if (e2.getX() - e1.getX() > 120) { // 从左向右滑动(左进右出)
			if (k > 0) {
				k--;
				File file = new File(filepath[k]);
				if (file.exists()) {
					Bitmap bm = BitmapFactory.decodeFile(filepath[k]);
					img.setImageBitmap(bm);
				} else {
					System.out.println("<<<<<<<<<<<<<<<<<<<Not Find picture["
							+ k + "]");
				}
			}
			return true;
		} else if (e2.getX() - e1.getX() < -120) { // 从右向左滑动(右进左出)
			if (k < 8) {
				k++;
				File file = new File(filepath[k]);
				if (file.exists()) {
					Bitmap bm = BitmapFactory.decodeFile(filepath[k]);
					img.setImageBitmap(bm);
				}
			}
			return true;
		}
		return true;
	}

	@Override
	public boolean onDown(MotionEvent e) {
		// TODO 自动生成的方法存根
		return false;
	}

	@Override
	public void onLongPress(MotionEvent e) {
		// TODO 自动生成的方法存根

	}

	@Override
	public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
			float distanceY) {
		// TODO 自动生成的方法存根
		return false;
	}

	@Override
	public void onShowPress(MotionEvent e) {
		// TODO 自动生成的方法存根

	}

	@Override
	public boolean onSingleTapUp(MotionEvent e) {
		// TODO 自动生成的方法存根
		return false;
	}

}
xml布局文件代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#000000"
    tools:context=".MainActivity" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/ic_launcher" />

</RelativeLayout>

注意manifest文件中添加手机读取权限

demo下载地址

阅读更多
个人分类: android
上一篇Bat文件的创建及其命令大全
下一篇android intent跳转时传参
想对作者说点什么? 我来说一句

Android 滑动效果 华丽翻页效果

2012年04月22日 936KB 下载

没有更多推荐了,返回首页

关闭
关闭