Android屏幕页面的滑动切换和抽取父类

因为页面的滑动效果在整个应用中使用较多,所有抽取成父类来介绍,看代码注释

import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.view.GestureDetector;import android.view.MotionEvent;import android.view.View;import android.view.GestureDetector.SimpleOnGestureListener;import android.widget.Toast;//定义抽象方法showNext,,由基类根据需要实现,其注意功能就是滑动切换,可以按123步骤学习public abstract class BaseSetupActivity extends Activity {//1.定义一个手势识别器private GestureDetector detector;protected SharedPreferences sp;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);sp = getSharedPreferences("config", MODE_PRIVATE);//2.实例化这个手势识别器,GestureDetector.SimpleOnGestureListener需要单独引用detector = new GestureDetector(this, new SimpleOnGestureListener(){/*** 当我们的手指在上面滑动的时候回调*/@Overridepublic boolean onFling(MotionEvent e1, MotionEvent e2,float velocityX, float velocityY) {//屏蔽在X滑动很慢的情形if(Math.abs(velocityX)<300){Toast.makeText(getApplicationContext(), "滑动得太慢了", 0).show();return true;}//屏蔽斜滑这种情况if(Math.abs((e2.getRawY() – e1.getRawY())) > 100){Toast.makeText(getApplicationContext(), "不能这样滑", 0).show();return true;}if((e2.getRawX() – e1.getRawX())> 200 ){//显示上一个页面:从左往右滑动System.out.println("显示上一个页面:从左往右滑动");showPre();return true;}if((e1.getRawX()-e2.getRawX()) > 200 ){//显示下一个页面:从右往左滑动System.out.println("显示下一个页面:从右往左滑动");showNext();return true;}return super.onFling(e1, e2, velocityX, velocityY);}});}public abstract void showNext();public abstract void showPre();/** * 下一步的点击事件 * @param view */public void next(View view){showNext();}/** * 上一步 * @param view */public void pre(View view){showPre();}//3.使用手势识别器@Overridepublic boolean onTouchEvent(MotionEvent event) {detector.onTouchEvent(event);return super.onTouchEvent(event);}}

每一件事都要用多方面的角度来看它

Android屏幕页面的滑动切换和抽取父类

相关文章:

你感兴趣的文章:

标签云: