为了展示getX()、getRawX()和getTop()方法的区别,我们写了一个简单的测试Demo,我们写了一个自定义控件(继承ImageView)。

package com.demo.ui;import android.content.Context;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.widget.ImageView;public class ImageViewTest extends ImageView {public ImageViewTest(Context context, @Nullable AttributeSet attrs) {super(context, attrs);}@Overridepublic boolean onTouchEvent(MotionEvent event) {int eventaction = event.getAction();switch (eventaction){case MotionEvent.ACTION_DOWN:break;case MotionEvent.ACTION_MOVE:int top, left;float rawx, rawy, x, y;top = getTop();left = getLeft();rawx = event.getRawX();rawy = event.getRawY();x = event.getX();y = event.getY();Log.i("TAG", "getTop() : " + top);Log.i("TAG", "getLeft() : " + left);Log.i("TAG", "getRawX() : " + rawx);Log.i("TAG", "getRawY() : " + rawy);Log.i("TAG", "getX() : " + x);Log.i("TAG", "getY() : " + y);break;case MotionEvent.ACTION_UP:break;}return super.onTouchEvent(event);}
}

当你触摸ImageViewTest控件的时候:

  • getTop()、getLeft():当前控件左上角相对于父容器控件的坐标;

  • getRawX()、getRawY():当前触摸点相对于屏幕的坐标;

  • getX()、getY():当前触摸点相对于当前控件的坐标;

Android MotionEvent中getX()、getRawX()和getTop()的区别相关推荐

  1. android MotionEvent中getX()和getRawX()的区别

    今天,讲讲触摸时间里  getX()和getRawX()的区别. 如上图所示: getRowX:触摸点相对于屏幕的坐标 getX: 触摸点相对于按钮的坐标 getTop: 按钮左上角相对于父vie ...

  2. android MotionEvent中getX()和getRawX()的区别

    当你触到按钮时,x,y是相对于该按钮左上点(控件本身)的相对位置. 而rawx,rawy始终是相对于屏幕的位置. 可知: getRowX:触摸点相对于屏幕的坐标 getX: 触摸点相对于按钮的坐标 g ...

  3. android motionevent 坐标,Android MotionEvent中getX()和getRawX()的区别

    RawX,RawY 相对于屏幕位置坐标X,Y 相对于容器的位置坐标 测试代码:public class Res extends Activity implements View.OnTouchList ...

  4. android 距离设置多少dp核实,【Android学习】android布局中几个距离单位的区别:px、dp、sp...

    一.px 像素,我们经常说的400*800这种的就是像素,这个比较好理解. 二.dp 要理解dp,首先要先引入dpi这个概念,dpi全称是dots per inch,对角线每英寸的像素点的个数,所以, ...

  5. Android Makefile中inherit-product函数和include的区别

    在 Android Makefile中inherit-product函数和include都是执行某个文件. include 使用: include device/mediatek/mt2712/dev ...

  6. MotionEvent中getAction、getActionMask、getActionIndex区别

    本文将详细介绍MotionEvent的一些成员和方法.了解了MotionEvent对开发一些特效如拖动控件或多点缩放控件有很大的作用.同时,掌握MotionEvent类也是学好android触控技术的 ...

  7. android motionevent 坐标,Android开发中MotionEvent坐标获取方法分析

    本文实例讲述了Android开发中MotionEvent坐标获取方法.分享给大家供大家参考,具体如下: Android MotionEvent中getX()与getRawX()都是获取屏幕坐标(横), ...

  8. android motionevent 坐标,Android坐标系、视图坐标系与触控事件(MotionEvent)

    前言:本篇文章讲解Android坐标系.视图坐标系与触控事件(MotionEvent) 一. Android 的坐标系:#### 在Android中,将屏幕左上角的定点座位Android坐标系的原点, ...

  9. Android MotionEvent详解

     在前边几篇博文中(<图解Android事件传递之ViewGroup篇>,<图解Android事件传递之View篇>),我们已经了解了android触摸事件传递机制,接着我们再 ...

最新文章

  1. 用C语言解“两个数的简单计算器”题
  2. 071_html语言代码
  3. 邮件发送类_10 分钟实现 Spring Boot 发生邮件功能
  4. python中 12_python编程中常用的12种基础知识总结
  5. 为什么我饿了么产品总监不干,却要从事自由职业?
  6. 手机html滚动原理,手机滚动-如何实现惯性滚动
  7. 细胞(信息学奥赛一本通-T1329)
  8. 95-110-020-源码-Env-StreamExecutionEnvironment
  9. 【死磕DDD】聊聊领域建模方法论
  10. html中div中文字如何上下居中,div中文字各种垂直居中的方法
  11. python开发cms企业官网用python php_基于Django的Python CMS
  12. Could not load file or assembly 'XXXXXXXX' or one of its dependencies. 试图加载格式不正确的程
  13. 金蝶KIS旗舰版V5.0.0研究学习
  14. 手机芯片的AP、BP和CP
  15. python 请假审批系统_菜鸟也要懂点设计模式|用Python设计一个请假模式
  16. MapGuide源代码结构
  17. 【深度学习】吴恩达深度学习-Course3结构化机器学习项目-第一周机器学习(ML)策略(1)作业
  18. mysql8.x 使用IP登录 Access denied for user
  19. HTML——阿里百秀案例
  20. 华北电力大学计算机学院地址,华北电力大学有几个校区及校区地址

热门文章

  1. 【转】pacs定位线_C#开发PACS医学影像处理系统(十五):Dicom影像交叉定位线算法
  2. console对象的方法log、info、warn、error的区别及几个实用的方法
  3. 多线程知识梳理(1) - 并发编程的艺术笔记
  4. python编写代码_用 Python 编写干净、可测试、高质量的代码
  5. 数位dp模板 最高位最低位_无纸化办公入门指南(数位板篇)
  6. java中sql之count_按SQL Server中的count()子句分组
  7. 业务异常 java_谈谈RxJava处理业务异常的几种方式
  8. mysql profile 导出_MySQL数据的导出和导入工具:mysqldump_MySQL
  9. navcat定时备份mysql_Linux实现MYSQl数据库的定时备份
  10. 聚类分析在用户行为中的实例_看完这篇,你还敢说不懂聚类分析?