`

Android手势(上,下,左和右的判断)

 
阅读更多
Android中提供了判断手势的接口,所有我们可以根据提供的API来实现各种各样的手势功能来提高手机应用的用户体验。(此段代码非常给力,O(∩_∩)O哈哈~)

下面是我写的一段小Demo:

GestureActivity.java



public class GestureActivity extends Activity {
   
    private GestureDetector gestureDetector;
    private Screen screen;



    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        gestureDetector = new GestureDetector(this,onGestureListener);
        //得到屏幕的大小
        screen = GestureUtils.getScreenPix(this);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return gestureDetector.onTouchEvent(event);
    }
   
    GestureDetector.OnGestureListener onGestureListener = new GestureDetector.SimpleOnGestureListener(){

        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
                float velocityY) {
            float x = e2.getX() - e1.getX();
            float y = e2.getY() - e1.getY();
            //限制必须得划过屏幕的1/3才能算划过
            float x_limit = screen.widthPixels / 3;
            float y_limit = screen.heightPixels / 3;
            float x_abs = Math.abs(x);
            float y_abs = Math.abs(y);
            if(x_abs >= y_abs){
                //gesture left or right
                if(x > x_limit || x < -x_limit){
                    if(x>0){
                        //right
                        show("right");
                    }else{
                        //left
                        show("left");
                    }
                }
            }else{
                //gesture down or up
                if(y > y_limit || y < -y_limit){
                    if(y>0){
                        //down
                        show("down");
                    }else{
                        //up
                        show("up");
                    }
                }
            }
            return true;
        }
       
    };
   
    private void show(String value){
        Toast.makeText(this, value, Toast.LENGTH_SHORT).show();
    }

   
}



GestureUtils.java



public class GestureUtils {



    //获取屏幕的大小
    public static Screen getScreenPix(Context context) {
        DisplayMetrics dm = new DisplayMetrics();
        WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        windowManager.getDefaultDisplay().getMetrics(dm);
        return new Screen(dm.widthPixels,dm.heightPixels);
    }
   
    public static class Screen{
       
        public int widthPixels;
        public int heightPixels;
       
        public Screen(){
           
        }
       
        public Screen(int widthPixels,int heightPixels){
            this.widthPixels=widthPixels;
            this.heightPixels=heightPixels;
        }

        @Override
        public String toString() {
            return "("+widthPixels+","+heightPixels+")";
        }
       
    }
   
}
分享到:
评论

相关推荐

    Android手势识别——上下左右滑动、屏幕上下左右中区域处理

    我们可以通过比较MotionEvent的X和Y坐标与屏幕尺寸的比例,划分出屏幕的上、下、左、右和中心区域。例如,如果坐标位于屏幕高度的前25%部分,我们可以认为是上区域;高度的后25%是下区域,以此类推。当用户在特定...

    安卓onTouchEvent上下左右滑动事件

    在Android开发中,触摸事件是用户与应用交互的重要方式,特别是在移动设备上。`onTouchEvent`是处理触摸事件的主要方法,它可以捕捉用户的点击、滑动等手势。本篇将详细讲解如何通过重写`onTouchEvent`来实现上下...

    android左右滑动翻页查看图片

    至此,我们就完成了基于Android手势检测的左右滑动查看图片的功能。通过这个示例项目`OnFlingDemo`,你可以更深入地理解如何将这些知识点应用到实际的开发中。记得在实际项目中根据需求调整代码,例如添加图片的加载...

    android左右滑动的选择控件

    Android的`MotionEvent`类提供了对触摸事件的封装,我们可以通过`ACTION_DOWN`、`ACTION_MOVE`和`ACTION_UP`等常量来判断用户的滑动行为。在`onTouchEvent()`方法中,我们需要记录下初始触摸位置,然后在`ACTION_...

    android Activity左右手势滑动

    反之,如果velocityX为负,说明是从右向左滑动,可以启动上一个Activity。启动新Activity时,通常会使用 `startActivity()` 方法,同时可能需要使用 `finish()` 来关闭当前Activity,以实现平滑的过渡效果。 为了...

    界面手势左右滑动效果

    在iOS和Android平台上,系统都提供了丰富的API供开发者实现各种手势识别。 1. iOS平台:苹果的UIKit框架提供了`UIPanGestureRecognizer`类,用于识别平移(panning)手势。开发者可以通过添加手势识别器到视图上,...

    Android封装自定义ViewPager实现左右无限切换和手势滑动效果1

    在标题“Android封装自定义ViewPager实现左右无限切换和手势滑动效果1”和描述“Android封装自定义ViewPager实现左右自动无限切换和手势滑动效果1”中,我们主要探讨的是如何对原生的ViewPager进行扩展,以实现无限...

    android桌面,支持左右滑动

    在Android操作系统中,桌面是用户与系统交互的主要入口,它由一系列可以左右滑动的屏幕组成,这种设计大大增强了用户体验,使得用户能够方便地访问和管理应用程序。标题"android桌面,支持左右滑动"所涉及的核心技术...

    android 日历 左右滑动

    完成以上步骤后,务必在多种设备和Android版本上进行充分的测试,确保滑动功能的稳定性和用户体验。 通过这些步骤,你可以为Android应用程序实现一个具备左右滑动切换月份功能的日历视图。这种交互方式不仅使得...

    android手势翻页效果

    总结,实现Android手势翻页效果涉及到手势检测、动画设计、视图管理、物理模拟等多个方面。通过合理的代码组织和性能优化,我们可以创建出流畅、逼真的翻页效果,提升应用的用户体验。在实际项目中,可以参考开源库...

    Android封装自定义ViewPager实现左右自动切换和手势滑动效果

    总之,封装自定义ViewPager实现左右自动切换和手势滑动效果是Android开发中的一个实用技巧。通过深入理解ViewPager的工作原理,结合定时器、手势识别和动画效果,我们可以为用户提供更加流畅和个性化的交互体验。这...

    Android activity加入左右监听手势,页面是一个listview,不影响listview的点击事件

    这涉及到Android手势识别、触摸事件处理以及ListView的自定义行为。 1. **Android手势识别**: Android提供了多种方式来实现手势识别,如`GestureDetector`、`ScaleGestureDetector`和`SwipeRefreshLayout`等。在...

    Android手势左右滑动效果

    如果滑动的方向是从左到右,那么可以执行右滑动画,反之亦然。 四、滑动动画的实现 滑动动画是 Android 手势左右滑动效果的核心 часть。在实现滑动动画时,需要使用 Animation 或 Animator 来实现滑动动画。...

    android GestureDetector依赖onTouchEvent判断左右滑动

    标题中的“android GestureDetector依赖onTouchEvent判断左右滑动”指的是通过`GestureDetector`监听`MotionEvent`的`ACTION_DOWN`, `ACTION_MOVE`和`ACTION_UP`事件,来实现手指在屏幕上左右滑动的识别。...

    android上下滑动引导页 上下切换页面 手势判断 SurfaceView实现

    可以使用Android的`MotionEvent`类,通过比较连续的`ACTION_DOWN`和`ACTION_UP`事件之间的Y坐标差来判断是上滑还是下滑。 - 如果Y坐标差满足一定的阈值,表示用户进行了上滑或下滑操作,此时可以调用`...

    【Android】自定义左右滑动菜单

    总的来说,"【Android】自定义左右滑动菜单"项目涵盖了Android UI设计、手势识别、动画实现和自定义组件等多个核心知识点。通过学习和实践这个项目,开发者不仅可以掌握创建滑动菜单的技巧,还能加深对Android系统...

    android 手势 滑动翻页

    在Android开发中,手势识别是增强...总的来说,实现Android手势滑动翻页需要理解手势事件机制,掌握`GestureDetector`的使用,并结合适当的UI组件和动画效果。通过实践和优化,可以创造出流畅且富有特色的翻页体验。

    android中实现左右滑动View

    在左右滑动视图的实现中,我们需要监听MotionEvent.ACTION_DOWN(手指按下)、ACTION_MOVE(手指移动)和ACTION_UP(手指抬起)等事件,根据手指移动的方向和距离判断是否触发滑动操作。 5. 动画效果: 为了提升...

    屏幕的上下左右滑动监听事件详解demo(AS)

    在Android开发中,屏幕...通过这个示例,开发者可以学习到手势识别的基本原理和实践技巧,提升Android应用的交互体验。在实际项目中,开发者可以根据需要调整滑动阈值,优化滑动的灵敏度,从而实现更流畅的用户界面。

Global site tag (gtag.js) - Google Analytics