Android MotionEvent中getX()和getRawX()的区别实例详解
实例代码:
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; } }
结论:
当你触到按钮时,x,y是相对于该按钮左上点(控件本身)的相对位置。
而rawx,rawy始终是相对于屏幕的位置。
可知:
可以想象 getRight()等同于下面的计算:getLeft()+getWidth()。
getX()是表示Widget相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕),getY(),getRawY()一样的道理
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
问题内容: 我感到困惑的是,为什么Java Point类接受两个int参数,而getX()和getY()方法返回双精度型。例如我可以定义一个点 如果我要打电话.. 它将返回4.0。如果我要打电话 我会得到4。 有什么理由吗? 问题答案: 有和扩展的类是的超类,它们需要能够使用浮点值。请注意,还有一个。 是一个抽象类,它实现的距离计算点,和,和是它的抽象方法,这就是为什么他们都用,为什么有执行这些S
我很困惑为什么JavaPoint类需要两个int参数,而getX()和getY()方法返回双精度 如果我打电话... 它将返回4.0。如果我打电话 我会得到4分。 有什么原因吗?
本文向大家介绍Android 中SP与DP的区别实例详解,包括了Android 中SP与DP的区别实例详解的使用技巧和注意事项,需要的朋友参考一下 从一开始写Android程序,就被告知这些常识 1.长度宽度的数值要使用dp作为单位放入dimens.xml文件中 2.字体大小的数值要使用sp作为单位,也放入dimens.xml文件中 然后,就没有然后了,仿佛潜台词就是说,你记住去用就行了. 偶然有
本文向大家介绍实例详解Matlab 与 Python 的区别,包括了实例详解Matlab 与 Python 的区别的使用技巧和注意事项,需要的朋友参考一下 一、Python简介 Python是一种面向对象的解释型计算机程序设计语言。Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议[2] 。Python语法简洁清
本文向大家介绍php die()与exit()的区别实例详解,包括了php die()与exit()的区别实例详解的使用技巧和注意事项,需要的朋友参考一下 网上搜索die与exit两个函数的区别,大部分的”标准答案”都是说die是退出并释放内存,exit是退出但不释放内存。 这个解释显然是错的,PHP手册中已经说过“die — Equivalent to exit().This language
本文向大家介绍C#中数组、ArrayList和List三者的区别详解及实例,包括了C#中数组、ArrayList和List三者的区别详解及实例的使用技巧和注意事项,需要的朋友参考一下 在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢。 数组 数组在C#中最早出现的。在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单。 但是数组存在一