android MotionEvent中getX()和getRawX()的区别
今天,讲讲触摸时间里
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()的区别相关推荐
- android motionevent 坐标,Android MotionEvent中getX()和getRawX()的区别
RawX,RawY 相对于屏幕位置坐标X,Y 相对于容器的位置坐标 测试代码:public class Res extends Activity implements View.OnTouchList ...
- android MotionEvent中getX()和getRawX()的区别
当你触到按钮时,x,y是相对于该按钮左上点(控件本身)的相对位置. 而rawx,rawy始终是相对于屏幕的位置. 可知: getRowX:触摸点相对于屏幕的坐标 getX: 触摸点相对于按钮的坐标 g ...
- Android MotionEvent中getX()、getRawX()和getTop()的区别
为了展示getX().getRawX()和getTop()方法的区别,我们写了一个简单的测试Demo,我们写了一个自定义控件(继承ImageView). package com.demo.ui;imp ...
- fileoutputstream路径 android,Android编程中FileOutputStream与openFileOutput()的区别分析
本文实例分析了Android编程中FileOutputStream与openFileOutput()的区别.分享给大家供大家参考,具体如下: openFileOutput() 首先给大家介绍使用文件如 ...
- Android布局中margin与padding的区别
我们知道Android开发不仅仅有代码的动态控制,而且还涉及到布局的静态搭建(xml).几乎在每一个xml文件中,我们总会看到margin和padding这两个属性,今天让我们初步探究一下它们之间的区 ...
- android开发中的 Activity 与 Context 区别与联系
Context 是 Application /Activity /Service的基类 Intent(Context , Class); Activity中的上下文Context是随着活动的产生而产生 ...
- Android工程中三种库的区别:Private Libraries、Referenced Libraries、Dependency Libraries
转自:https://blog.csdn.net/mybook1122/article/details/46554933 一.v4.v7.v13的作用和用法 1.Android Support V4, ...
- Android 开发中Layout_Margin与padding的区别以及Layout_gravity与gravity的区别
Layout_Margin与padding的区别以及Layout_gravity与gravity的区别 平时开发中这几个属性是我们经常使用的几个属性,偶尔脑子一糊涂,就容易弄混这些属性,下面,我就仔细 ...
- Android系统中Parcelable和Serializable的区别
进行Android开发的时候,我们都知道不能将对象的引用传给Activities或者Fragments,我们需要将这些对象放到一个Intent或者Bundle里面,然后再传递. 通过Android的A ...
最新文章
- NSString属性什么时候用copy,什么时候用strong?
- LoRDEC: a tool for correcting errors in long sequencing reads 纠正长序列读取错误的工具
- Vue2.0---webpack打包知识点-2
- [C#][Newtonsoft.Json] Newtonsoft.Json 序列化时的一些其它用法
- JavaScript对象类型Object
- pyqt5 treeview鼠标右键菜单事件_【动手实践】使用 Vue 自定义指令实现右键菜单...
- android中的MotionEvent 及其它事件处理
- java汉字的编码_Java中文编码小结
- 保证金监控中心保证期货开户和交易记录
- 小学用计算机画画的课件,小学信息技术绘图课件
- 怎么查看电脑的电池损耗情况?
- 强化学习的学习之路(十)_2021-01-10:K臂老虎机介绍及其Python实现
- 重阳节,让我们祝天下的老年人生活幸福快乐。
- 视频工作室必备利器——群晖NAS
- dellg3计算机rom,戴尔G3 U盘装系统win7教程
- EM4001射频模块读卡
- 大众点评 mtgisg分析
- 电路设计PCB学习记录——220v转12v5v降压电源
- linux kernel网络驱动
- dialog弹出时,点击dialog之外的地方时,dialog不消失。