加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 23:28:46 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.view.GestureDetector; import

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

    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);  
            }  
    }  

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读