资源简介
package com.codeshogun.android.swipesample;
import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ViewFlipper;
public class Main extends Activity {
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
private GestureDetector gestureDetector;
View.OnTouchListener gestureListener;
private Animation slideLeftIn;
private Animation slideLeftOut;
private Animation slideRightIn;
private Animation slideRightOut;
private ViewFlipper viewFlipper;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
viewFlipper = (ViewFlipper)findViewById(R.id.flipper);
slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_left_in);
slideLeftOut = AnimationUtils.loadAnimation(this, R.anim.slide_left_out);
slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in);
slideRightOut = AnimationUtils.loadAnimation(this, R.anim.slide_right_out);
gestureDetector = new GestureDetector(new MyGestureDetector());
gestureListener = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event)) {
return true;
}
return false;
}
};
}
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// right to left swipe
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
viewFlipper.setInAnimation(slideLeftIn);
viewFlipper.setOutAnimation(slideLeftOut);
viewFlipper.showNext();
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
viewFlipper.setInAnimation(slideRightIn);
viewFlipper.setOutAnimation(slideRightOut);
viewFlipper.showPrevious();
}
} catch (Exception e) {
// nothing
}
return false;
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
}
}
代码片段和文件信息
package com.codeshogun.android.swipesample;
import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ViewFlipper;
public class Main extends Activity {
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
private GestureDetector gestureDetector;
View.OnTouchListener gestureListener;
private Animation slideLeftIn;
private Animation slideLeftOut;
private Animation slideRightIn;
private Animation slideRightOut属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2009-04-16 21:37 SwipeSample\
文件 232 2009-04-16 21:37 SwipeSample\.classpath
文件 814 2009-04-16 21:37 SwipeSample\.project
文件 650 2009-04-16 21:37 SwipeSample\AndroidManifest.xm
目录 0 2009-04-16 21:37 SwipeSample\assets\
目录 0 2009-04-16 21:45 SwipeSample\bin\
文件 5500 2009-04-16 21:45 SwipeSample\bin\classes.dex
目录 0 2009-04-16 21:37 SwipeSample\bin\com\
目录 0 2009-04-16 21:37 SwipeSample\bin\com\codeshogun\
目录 0 2009-04-16 21:37 SwipeSample\bin\com\codeshogun\android\
目录 0 2009-04-16 21:43 SwipeSample\bin\com\codeshogun\android\swipesample\
文件 1087 2009-04-16 21:45 SwipeSample\bin\com\codeshogun\android\swipesample\Main$1.class
文件 1712 2009-04-16 21:45 SwipeSample\bin\com\codeshogun\android\swipesample\Main$MyGestureDetector.class
文件 2687 2009-04-16 21:45 SwipeSample\bin\com\codeshogun\android\swipesample\Main.class
文件 560 2009-04-16 21:41 SwipeSample\bin\com\codeshogun\android\swipesample\R$anim.class
文件 388 2009-04-16 21:41 SwipeSample\bin\com\codeshogun\android\swipesample\R$attr.class
文件 448 2009-04-16 21:41 SwipeSample\bin\com\codeshogun\android\swipesample\R$drawable.class
文件 433 2009-04-16 21:41 SwipeSample\bin\com\codeshogun\android\swipesample\R$id.class
文件 442 2009-04-16 21:41 SwipeSample\bin\com\codeshogun\android\swipesample\R$layout.class
文件 475 2009-04-16 21:41 SwipeSample\bin\com\codeshogun\android\swipesample\R$string.class
文件 705 2009-04-16 21:41 SwipeSample\bin\com\codeshogun\android\swipesample\R.class
文件 7890 2009-04-16 21:41 SwipeSample\bin\resources.ap_
文件 12393 2009-04-16 21:45 SwipeSample\bin\SwipeSample.apk
目录 0 2009-04-16 21:41 SwipeSample\res\
目录 0 2009-04-16 21:41 SwipeSample\res\anim\
文件 835 2009-04-15 11:22 SwipeSample\res\anim\slide_left_in.xm
文件 836 2009-04-15 11:22 SwipeSample\res\anim\slide_left_out.xm
文件 836 2009-04-15 11:28 SwipeSample\res\anim\slide_right_in.xm
文件 835 2009-04-15 11:28 SwipeSample\res\anim\slide_right_out.xm
目录 0 2009-04-16 21:37 SwipeSample\res\drawable\
文件 3180 2009-04-16 21:37 SwipeSample\res\drawable\icon.png
............此处省略11个文件信息
- 上一篇:android 录音
- 下一篇:android 圆形图片
评论
共有 条评论