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

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

    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;  
            @Override  
            protected void onCreate(Bundle savedInstanceState) {  
                // Todo Auto-generated method stub  
                super.onCreate(savedInstanceState);  
                sp = getSharedPreferences("config",MODE_PRIVATE);  
                //2.实例化这个手势识别器,GestureDetector.SimpleOnGestureListener需要单独引用  
                detector = new GestureDetector(this,new SimpleOnGestureListener(){  
      
                    /** 
                     * 当我们的手指在上面滑动的时候回调 
                     */  
                    @Override  
                    public 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.使用手势识别器  
            @Override  
            public boolean onTouchEvent(MotionEvent event) {  
                detector.onTouchEvent(event);  
                return super.onTouchEvent(event);  
            }  
    }  

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...