今天,讲讲触摸时间里



getX()和getRawX()的区别。

如上图所示:

getRowX:触摸点相对于屏幕的坐标
getX: 触摸点相对于按钮的坐标
getTop: 按钮左上角相对于父view(LinerLayout)的y坐标
getLeft: 按钮左上角相对于父view(LinerLayout)的x坐标

这个可以写一个测试程序测试一下。

实例代码:

public class Res extends Activity implements View.OnTouchListener {  Button btn = null;  int x = 0;  int y = 0;  int rawx = 0;  int rawy = 0;  @Override  public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.main);  btn = (Button) findViewById(R.id.button);  btn.setOnTouchListener(this);  }  public boolean onTouch(View view, MotionEvent event) {  int eventaction = event.getAction();  switch (eventaction) {  case MotionEvent.ACTION_DOWN:  break;  case MotionEvent.ACTION_MOVE:  x = (int) event.getX();  y = (int) event.getY();  rawx = (int) event.getRawX();  rawy = (int) event.getRawY();  Log.d("DEBUG", "getX=" + x + "getY=" + y + "n" + "getRawX=" + rawx  + "getRawY=" + rawy + "n");  break;  case MotionEvent.ACTION_UP:  break;  }  return false;  }
}

可以想象 getRight()等同于下面的计算:getLeft()+getWidth()。

getX()是表示Widget相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕),getY(),getRawY()一样的道理

android  MotionEvent中getX()和getRawX()的区别就讲完了。

就这么简单。

android MotionEvent中getX()和getRawX()的区别相关推荐

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

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

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

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

  3. Android MotionEvent中getX()、getRawX()和getTop()的区别

    为了展示getX().getRawX()和getTop()方法的区别,我们写了一个简单的测试Demo,我们写了一个自定义控件(继承ImageView). package com.demo.ui;imp ...

  4. fileoutputstream路径 android,Android编程中FileOutputStream与openFileOutput()的区别分析

    本文实例分析了Android编程中FileOutputStream与openFileOutput()的区别.分享给大家供大家参考,具体如下: openFileOutput() 首先给大家介绍使用文件如 ...

  5. Android布局中margin与padding的区别

    我们知道Android开发不仅仅有代码的动态控制,而且还涉及到布局的静态搭建(xml).几乎在每一个xml文件中,我们总会看到margin和padding这两个属性,今天让我们初步探究一下它们之间的区 ...

  6. android开发中的 Activity 与 Context 区别与联系

    Context 是 Application /Activity /Service的基类 Intent(Context , Class); Activity中的上下文Context是随着活动的产生而产生 ...

  7. Android工程中三种库的区别:Private Libraries、Referenced Libraries、Dependency Libraries

    转自:https://blog.csdn.net/mybook1122/article/details/46554933 一.v4.v7.v13的作用和用法 1.Android Support V4, ...

  8. Android 开发中Layout_Margin与padding的区别以及Layout_gravity与gravity的区别

    Layout_Margin与padding的区别以及Layout_gravity与gravity的区别 平时开发中这几个属性是我们经常使用的几个属性,偶尔脑子一糊涂,就容易弄混这些属性,下面,我就仔细 ...

  9. Android系统中Parcelable和Serializable的区别

    进行Android开发的时候,我们都知道不能将对象的引用传给Activities或者Fragments,我们需要将这些对象放到一个Intent或者Bundle里面,然后再传递. 通过Android的A ...

最新文章

  1. NSString属性什么时候用copy,什么时候用strong?
  2. LoRDEC: a tool for correcting errors in long sequencing reads 纠正长序列读取错误的工具
  3. Vue2.0---webpack打包知识点-2
  4. [C#][Newtonsoft.Json] Newtonsoft.Json 序列化时的一些其它用法
  5. JavaScript对象类型Object
  6. pyqt5 treeview鼠标右键菜单事件_【动手实践】使用 Vue 自定义指令实现右键菜单...
  7. android中的MotionEvent 及其它事件处理
  8. java汉字的编码_Java中文编码小结
  9. 保证金监控中心保证期货开户和交易记录
  10. 小学用计算机画画的课件,小学信息技术绘图课件
  11. 怎么查看电脑的电池损耗情况?
  12. 强化学习的学习之路(十)_2021-01-10:K臂老虎机介绍及其Python实现
  13. 重阳节,让我们祝天下的老年人生活幸福快乐。
  14. 视频工作室必备利器——群晖NAS
  15. dellg3计算机rom,戴尔G3 U盘装系统win7教程
  16. EM4001射频模块读卡
  17. 大众点评 mtgisg分析
  18. 电路设计PCB学习记录——220v转12v5v降压电源
  19. linux kernel网络驱动
  20. dialog弹出时,点击dialog之外的地方时,dialog不消失。

热门文章

  1. 老李推荐: 第8章4节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动AndroidDebugBridge 2...
  2. dirname和basename命令
  3. 从0学习css开发之 font-size的基本用法
  4. Linux MTD系统剖析
  5. [转]PHP程序中的汉字编码探讨
  6. Oracle学习(十六)Oracle安装
  7. 【Python】hello python!
  8. day05 selenium
  9. thinkphp中URL传参数的几种方式
  10. python入门之前面内容拾遗