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

当你触到按钮时,x,y是相对于该按钮左上点(控件本身)的相对位置。
而rawx,rawy始终是相对于屏幕的位置。

可知:

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

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

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

时间: 2024-11-01 14:30:28

android MotionEvent中getX()和getRawX()的区别的相关文章

MotionEvent中getX()和getRawX()的区别

http://blog.csdn.net/ztp800201/article/details/17218067 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)

Android开发之getX,getRawX,getWidth,getTranslationX等的区别

转载请注明出处:http://blog.csdn.net/dmk877/article/details/51550031      好久没写博客了,最近工作确实挺忙的,刚刚结束了一个TV项目的开发,对于第一次开发TV项目的我表示:还是手机开发好啊.本来以为TV项目开发完了可以休息几天但是我还是想多了,哈哈,马上就要进行新项目的开发,唉,说多了都是眼泪啊,废话不多说咱们进入正题,今天和大家一起讨论的是android中的一些距离,可能在日常的开发中我们会经常遇到,但是有时候这几个概念又特别容易弄混,

关于android编程中service和activity的区别

一. 绝大部分情况下,Service的作用是用来"执行"后台的.耗时的.重要的任务,三者缺一不可,而最重要的原因是第三点:要执行重要的任务. 因为当一个进程启动了Service后,进程的优先级变高了,系统除非在非常极端的情况下,不会杀掉该进程,反观Activity,不具备这样的特性. 如果没有满足上面所说的三点,请谨慎使用Service,千万别把使用Service的理由变成:这样可以常驻后台.从资源使用的角度来看,这是非常不可取的. 二. 1.Activity和Service的生命周期

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

一.v4.v7.v13的作用和用法 1.Android Support V4, V7, V13是什么? 本质上就是三个java library. 2.为什么要有support库? ??是为了解决软件的兼容问题.如果在低版本Android平台上开发一个应用程序,而应用程序又想使用高版本才拥有的功能,就需要使用Support库. ??android api向来是高版本兼容低版本.如api-8(android2.2)必会兼容api-4(android 1.6).但是反之则不会,你使用2.2的平台版本b

Android系统中Parcelable和Serializable的区别

进行Android开发的时候,我们都知道不能将对象的引用传给Activities或者Fragments,我们需要将这些对象放到一个Intent或者Bundle里面,然后再传递. 通过Android的API,我们知道有两种选择,即在传递对象时,需要对我们的对象进行 Parcelable 或者Serializable化.作为Java开发者,相信大家对Serializable 机制有一定了解,那为什么还需要 Parcelable呢? 为了回答这个问题,让我们分别来看看这两者的差异. Serializa

Android系统中Parcelable和Serializable的区别,自动化实现Parcelable接口的插件

Parcelable和Serializable的区别 参考地址:http://greenrobot.me/devpost/android-parcelable-serializable/ 由于最终的区别在于Parcelable的序列化速度远远高于Serializable,故本人更倾向于使用Parcelable,但是Parcelable接口实现起来较为复杂,所以很多人不愿意写. 但是在Android Studio和Idea中有自动生成Parcelable代码模板的插件,相当实用. 可参考如下地址使

android布局中margin和padding的区别!

其实从使用的时候就可以区别开来. android:padding android:layout_margin padding是在本控件级别的,而margin是在layout级别的. 最好拿有背景的控件做测试: padding: margin:

Android View中的requestLayout和invalidate区别

摘抄自Api Doc RequestLayout: 当view确定自身已经不再适合现有的区域时,该view本身调用这个方法要求parent view重新调用他的onMeasure onLayout来对重新设置自己位置. 特别的当view的layoutparameter发生改变,并且它的值还没能应用到view上,这时候适合调用这个方法.也就是当通过getLayoutParrms().width = XXX的时候,我们需要重新调用RequestLayout invalidate:View类调用迫使v

图解MotionEvent中getRawX、getRawY与getX、getY以及View中的getScrollX、getScrollY

1.getRawX.getRawY与getX.getY的区别 在编写android的自定义控件,或者判断用户手势操作时,往往需要使用MotionEvent中的getRawX().getRawY()与getX().getY()取得触摸点在X轴与Y轴上的距离,这四个方法都返回一个float类型的参数,单位为像素(Pixel).getRawX().getRawY()返回的是触摸点相对于屏幕的位置,而getX().getY()返回的则是触摸点相对于View的位置. 以下两张图直观的表现了这几个方法的区别