个人遇到的问题判断按钮的点击事件还是滑动事件

   private boolean button1Down = false;
private boolean button2Down = false; private boolean pointInRect(float x, float y, int w, int h) {
if (x < 0) {
return false;
}
if (x > w) {
return false;
}
if (y < 0) {
return false;
}
if (y > h) {
return false;
}
return true;
}

判断按钮坐标是否在矩形区域内

 tv_button_group.setOnTouchListener(new View.OnTouchListener() {

                @Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
button1Down = pointInRect(event.getX(), event.getY(), v.getWidth(), v.getHeight());
break;
case MotionEvent.ACTION_MOVE:
for(int i=0; i<event.getHistorySize(); i++) {
if(!pointInRect(event.getHistoricalX(i), event.getHistoricalY(i), v.getWidth(), v.getHeight())) {
button1Down = false;
break;
}
}
break;
case MotionEvent.ACTION_UP: // 判断是否为点击
if (button1Down && pointInRect(event.getX(), event.getY(), v.getWidth(), v.getHeight())) {
if (initdata.get(position).isIsJoined()) {
SessionHelper.startTeamSession(MainActivity.this, initdata.get(position).getGroupId());
} else {
joinGroup(initdata.get(position).getGroupId());
}
} else {                  //判断向上距离大于300为滑动及隐藏卡片页显示地图页
if (event.getY() < -300) {
recyclerView.setVisibility(View.GONE);
iv_data.setVisibility(View.GONE);
ll_bottom.setVisibility(View.GONE);
vw_view.setVisibility(View.GONE);
rl_deta.setVisibility(View.GONE);
mTitleWidget.setVisibility(View.GONE);
im_fanhui.setVisibility(View.VISIBLE);
rl_group.setVisibility(View.VISIBLE);
itData(mLongitude, mLatitude);
uiSettings.setScrollGesturesEnabled(true); //禁止拖拽
isoncl = false;
return true;
}
}
break;
} return true;
}
});

Android判断一个点是否在矩形区域内的更多相关文章

  1. 判断一个点是否在某个区域内。百度,高德,腾讯都能用。(php版)

    <?php // *** 配置文件(表示区域的三维数组)其内的点,必须按顺时针方向依次给出! $area = array( // 天通苑店 0 => array( array('x'=&g ...

  2. 判断一个点是否在多边形区域内--C算法

    /*函数的输入:(1)当前点的坐标p(2)区域顶点数组pt[]:(3)顶点数nCount 输出: 在区域内返回TRUE,否则返回FALSE.  Point类型是一个结构: struct Point { ...

  3. php 判断一个点是否在一个多边形区域内

    <?php class pointMap{ private static $coordArray; private static $vertx = []; private static $ver ...

  4. Android 判断一个 View 是否可见 getLocalVisibleRect(rect) 与 getGlobalVisibleRect(rect)

    Android 判断一个 View 是否可见 getLocalVisibleRect(rect) 与 getGlobalVisibleRect(rect) [TOC] 这两个方法的区别 View.ge ...

  5. 百度地图java 判断当前位置是否在多边形区域内

    package com.haiyisoft.cAssistant.adapter.hessian; import java.awt.geom.Point2D;import java.util.Arra ...

  6. Mysql中判断一个点是否落在多边形内

    关于地理空间数据,经常需要处理两个空间数据的关联关系.有很多种方法可以处理,通过编写程序算法,或者是调用数据库中对应的function.在mysql数据库中,https://dev.mysql.com ...

  7. 推断一个点是否在某个区域内。百度,高德,腾讯都能用。(php版)

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...

  8. iOS 如何判断一个点在某个指定区域中

    在iOS 开发中会遇到 判断位置的情况 iOS 自己都有函数实现的这些功能. 判断一个点是否在这个rect区域中 bool CGRectContainsPoint(CGRect rect,CGPoin ...

  9. Spring Data MongDB空间索引(判断一个点Point是否在一个区域Polygon内)

    这里要连接MongoDB数据库,在配置文件里:spring.data.mongodb.uri = mongodb://root:root@localhost:27017/happy 两个root分别是 ...

随机推荐

  1. Tree Traversals Again

    An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example ...

  2. Wow64(32位进程)注入DLL到64位进程

    转载自: https://blog.poxiao.me/p/wow64-process-inject-dll-into-x64-process/ 向其他进程注入DLL通常的做法是通过调用CreateR ...

  3. web前端基础学习路线

    1.HTML和CSS的基础知识,完成网页的初步设计 2.JavaScript基础知识和DOM.BOM的学习 3.前端基础框架:CSS框架Bootstrap.JavaScript框架jquery的熟悉使 ...

  4. spark2.1源码分析2:从SparkPi分析一个job的执行

    从SparkPi的一个行动操作入手,选择Run–Debug SparkPi进入调试: F8:Step Over F7:Step Into 右键Run to Cursor Ctrl+B 查看定义 导航– ...

  5. 使用阿里云Java SDK 实现 DDNS

    本代码的实现前提: 1.拥有阿里云域名,且获取了Access Key 及 Access Secret 2.能获取外网IP的页面地址(注意:ip138.com的实际包含ip地址为http://2018. ...

  6. DataGridView属性和事件

    //注册绑定事件 private void dgvBidFile_EditingControlShowing(object sender, DataGridViewEditingControlShow ...

  7. VB.net中合并word中的表格

    软帝国产品的互兼容性使得我们采用vb.net编程语言操作Microsoft Word文档变得相当容易.针对本文的主题,网络上已经有很多大牛博客做了详细的介绍,基本的我就不再赘述,只是自己在做项目的时候 ...

  8. ssh 公钥无秘登录问题

    1. 验证服务启动,网络端口连接正常 可以使用nc,telnet,或者密码模式的ssh来验证 2. 验证ssh client端的配置正确 可以尝试登录另外一台主机, 或者本机自校验 3. 验证ssh ...

  9. (简单)华为M3青春 CPN-AL10的Usb调试模式在哪里打开的步骤

    每次我们使用PC通过数据线连接到安卓手机的时候,如果手机没有开启usb开发者调试模式,PC则没能成功检测到我们的手机,有时候我们使用的一些功能比较强的的应用软件比如以前我们使用的一个应用软件引号精灵, ...

  10. MIUI6系统详细卡刷开发版获得root权限的经验

    小米的手机不同手机型号通常情况miui论坛都提供两个不同的版本,分别为稳定版和开发版,稳定版没有提供ROOT权限管理,开发版中就开启了ROOT权限,很多情况下我们需要使用的一些功能强大的App,都需要 ...