博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 手势滑动
阅读量:6814 次
发布时间:2019-06-26

本文共 2127 字,大约阅读时间需要 7 分钟。

hot3.png

一: GestureDetector

 写的不错,但是

博文中有错误,正确的写法是:

@Override

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

if (e1.getX()-e2.getX()>120) {//左滑,右边显示

ToastUtils.showShortToast(PersonalCenterActivity2.this, "左滑,右边显示");

}

if(e1.getX()-e2.getX()<-120) {

ToastUtils.showShortToast(PersonalCenterActivity2.this, "右滑,左边显示");

}

return false;

}

 

二:Android的Activity屏幕切换动画(一)-左右滑动切换:

 

三:android开发中Webview无法触发手势方法(ontouchevent,onfling...)的解决方法:

@Override

    public boolean dispatchTouchEvent(MotionEvent ev) {    //注意这里不能用ONTOUCHEVENT方法,不然无效的
           Toast.makeText(NewsContent.this, "jinru", 1).show();
            detector.onTouchEvent(ev);
            webview.onTouchEvent(ev);
           return super.dispatchTouchEvent(ev);
    }

适用与webview,scollview,listview。

Acitity中有listview,手势无法实现 :

 

Android Activity之间切换出现短暂黑屏的处理方法:

style name="startTheme" parent="@android:style/Theme">  

        <item name="android:windowIsTranslucent">true</item>  

        <item name="android:windowNoTitle">true</item><!--无标题-->  

    </style>  

 

四:上下左右滑动冲突问题:

@Override  

        public boolean onScroll(MotionEvent e1, MotionEvent e2,  

                float distanceX, float distanceY) {  

            double angle = Math.atan2(Math.abs(distanceY), Math.abs(distanceX));  

//          System.out.println("angle-->" + (180 * angle) / Math.PI);  

            if ((180 * angle) / Math.PI < 180) {  

                return false;  

            }  

            return false;  

        } 

五、Android开发ScrollView上下左右滑动事件冲突整理二(根据角度)

 

六、用Activity的onTouchEvent方法实现监听手指上下左右滑动:

 @Override  

    public boolean onTouchEvent(MotionEvent event) {  

        //继承了Activity的onTouchEvent方法,直接监听点击事件  

        if(event.getAction() == MotionEvent.ACTION_DOWN) {  

            //当手指按下的时候  

            x1 = event.getX();  

            y1 = event.getY();  

        }  

        if(event.getAction() == MotionEvent.ACTION_UP) {  

            //当手指离开的时候  

            x2 = event.getX();  

            y2 = event.getY();  

            if(y1 - y2 > 50) {  

                Toast.makeText(MainActivity.this, "向上滑", Toast.LENGTH_SHORT).show();  

            } else if(y2 - y1 > 50) {  

                Toast.makeText(MainActivity.this, "向下滑", Toast.LENGTH_SHORT).show();  

            } else if(x1 - x2 > 50) {  

                Toast.makeText(MainActivity.this, "向左滑", Toast.LENGTH_SHORT).show();  

            } else if(x2 - x1 > 50) {  

                Toast.makeText(MainActivity.this, "向右滑", Toast.LENGTH_SHORT).show();  

            }  

        }  

        return super.onTouchEvent(event);  

    }  

原文地址: 

转载于:https://my.oschina.net/u/1389206/blog/373503

你可能感兴趣的文章
F5集群配置公共irule,解决X-Frame-Options漏洞及host头漏洞
查看>>
mysql 创建日期列之timestamp
查看>>
VMM系列之使用VMM服务器构建 Hyper-V主机(4)
查看>>
详测 Generics Collections TList (7): Items、Contains
查看>>
配置FTP服务器(2) 本地用户下载和上传
查看>>
多线程编程(11) - 多线程同步之 Mutex (互斥对象)[续]
查看>>
【Java每日一题】20161214
查看>>
requireJs 模块化简陋版本
查看>>
我的友情链接
查看>>
How to upgrade vim to version 8 on CentOS 7
查看>>
xcode pod 报import 找不到 pods的支持问题解决方法之一
查看>>
nginx配置让任何文件在浏览器中显示文本text/plain
查看>>
思科路由器×××配置-- 动态 site-to-site ×××(上)
查看>>
Visual Studio统计有效代码行数
查看>>
Qt连接Oracle数据库常见问题
查看>>
45个实用的JavaScript技巧、窍门和最佳实践
查看>>
sqlserver 2005 列字符串拼接
查看>>
TSharding源码阅读-MapperShardingInitializer
查看>>
XWifiMouse早期写的一个Android鼠标App
查看>>
postgres预写式日志的内核实现详解-wal记录写入
查看>>