getRawX、getRawY与getX、getY以及View中的getScrollX、getScrollY
来源:互联网 发布:java批量发送邮件 编辑:程序博客网 时间:2024/05/09 16:20
MotionEvent中getRawX、 getRawY与getX、 getY以及View中的getScrollX、
getScrollY; 以及View.getX、 View.getY和View.getTranslationX、
View.getTranslationY的区别
1.getRawX、 getRawY与getX、 getY的区别
在编写android的自定义控件, 或者判断用户手势操作时, 往往需要使用MotionEvent中的getRawX()、 getRawY()与
getX()、 getY()取得触摸点在X轴与Y轴上的距离, 这四个方法都返回一个float类型的参数, 单位为像素( Pixel) 。
getRawX()、 getRawY()返回的是触摸点相对于屏幕的位置, 而getX()、 getY()返回的则是触摸点相对于View的位置。
以下两张图直观的表现了这几个方法的区别, 在屏幕中央放置了一个Button, 并为它注册了OnTouchListener, 图中绿圆点
为触摸点位置。
getScrollY; 以及View.getX、 View.getY和View.getTranslationX、
View.getTranslationY的区别
1.getRawX、 getRawY与getX、 getY的区别
在编写android的自定义控件, 或者判断用户手势操作时, 往往需要使用MotionEvent中的getRawX()、 getRawY()与
getX()、 getY()取得触摸点在X轴与Y轴上的距离, 这四个方法都返回一个float类型的参数, 单位为像素( Pixel) 。
getRawX()、 getRawY()返回的是触摸点相对于屏幕的位置, 而getX()、 getY()返回的则是触摸点相对于View的位置。
以下两张图直观的表现了这几个方法的区别, 在屏幕中央放置了一个Button, 并为它注册了OnTouchListener, 图中绿圆点
为触摸点位置。
2.View中的getScrollX、 getScrollY
getScrollX()与getScrollY()的值由调用View的scrollTo(int x, int y)或者scrollBy(int x, int y)产生, 其中scrollTo是将View中的内容移
动到指定的坐标x、 y处, 此x、 y是相对于
View的左上角, 而不是屏幕的左上角。 scrollBy(int x, int y)则是改变View中的相对位置, 参数x、 y为距离上一次的相对位
置。
文字解释总是不好理解的, 那么我们就直接上图吧, 直观一些
1.图1中, 屏幕中心放置了一个button, 而button的内容被放置在了它的左上角。
2.调用button的scrollTo(-100, -100)方法, 结果如图2所示, button内的内容被移至相对button左上角(-100, -100)的位置
3.对图2的button调用scrollBy(-100,-100)方法, 结果如图3所示, button内的内容被移至相对于图2的(-100,-100)位置
这时的getScrollX()与getScrollY()的值为:
06-15 15:44:56.072 20471-20471/com.test.yangy.studiotest V/ScrollActivity﹕ btn scroll X=-200
06-15 15:44:56.072 20471-20471/com.test.yangy.studiotest V/ScrollActivity﹕ btn scroll Y=-200
值得注意的是, 当View中的内容向右移动时, getScrollX()的值为负数, 同理, 向scrollTo与scrollBy的x中传入负数, view中
的内容向右移动, 反之向左。
当View中的内容向下移动时, getScrollY()的值为负数, 同理, 向scrollTo与scrollBy的y中传入负数, view中的内容向下移
动, 反之向上。
getScrollX()与getScrollY()的值由调用View的scrollTo(int x, int y)或者scrollBy(int x, int y)产生, 其中scrollTo是将View中的内容移
动到指定的坐标x、 y处, 此x、 y是相对于
View的左上角, 而不是屏幕的左上角。 scrollBy(int x, int y)则是改变View中的相对位置, 参数x、 y为距离上一次的相对位
置。
文字解释总是不好理解的, 那么我们就直接上图吧, 直观一些
1.图1中, 屏幕中心放置了一个button, 而button的内容被放置在了它的左上角。
2.调用button的scrollTo(-100, -100)方法, 结果如图2所示, button内的内容被移至相对button左上角(-100, -100)的位置
3.对图2的button调用scrollBy(-100,-100)方法, 结果如图3所示, button内的内容被移至相对于图2的(-100,-100)位置
这时的getScrollX()与getScrollY()的值为:
06-15 15:44:56.072 20471-20471/com.test.yangy.studiotest V/ScrollActivity﹕ btn scroll X=-200
06-15 15:44:56.072 20471-20471/com.test.yangy.studiotest V/ScrollActivity﹕ btn scroll Y=-200
值得注意的是, 当View中的内容向右移动时, getScrollX()的值为负数, 同理, 向scrollTo与scrollBy的x中传入负数, view中
的内容向右移动, 反之向左。
当View中的内容向下移动时, getScrollY()的值为负数, 同理, 向scrollTo与scrollBy的y中传入负数, view中的内容向下移
动, 反之向上。
3.View中的getX、 getTranslationX的区别
view.getTranslationX计算的是该view的偏移量。初始值为0,向左偏移值为负,向右偏移值为正。
view.getX相当于该view距离父容器左边缘的距离,等于getLeft+getTranslationX。
示意图:
view.getTranslationX计算的是该view的偏移量。初始值为0,向左偏移值为负,向右偏移值为正。
view.getX相当于该view距离父容器左边缘的距离,等于getLeft+getTranslationX。
示意图:
3.获取View在窗口中的位置
int[] position = newint[2];
view.getLocationInWindow(position);
y=position[1]
数组的两个值分别为View的X,Y坐标;
int[] position = newint[2];
view.getLocationInWindow(position);
y=position[1]
数组的两个值分别为View的X,Y坐标;
0 0
- getRawX、getRawY与getX、getY以及View中的getScrollX、getScrollY
- getRawX、getRawY与getX、getY以及View中的getScrollX、getScrollY以及Scroller中的startScroll方法
- View中的getScrollX、getScrollY与getLeft、getRight 以及 MotionEvent中的getX、getY与getRawX、getRawY
- 图解MotionEvent中getRawX、getRawY与getX、getY以及View中的getScrollX、getScrollY
- 图解MotionEvent中getRawX、getRawY与getX、getY以及View中的getScrollX、getScrollY
- 图解MotionEvent中getRawX、getRawY与getX、getY以及View中的getScrollX、getScrollY
- 图解MotionEvent中getRawX、getRawY与getX、getY以及View中的getScrollX、getScrollY
- getRawX(),getRawY(),getX(),getY(),getScrollX(),getScrollY()区别
- getRawX、getRawY与getX、getY、getScrollX、getScrollY,getTop,getLeft区别
- getX getRawX getY getRawY
- android getX()、getY()、getRawX()、getRawY()、getSrrollX()、getScrollY()、scrollTo()、scrollBy()对比
- getX()、getY() 与getRawX(),getRawY()的区别
- getX、getY与getRawX、getRawY的区别
- MotionEvent中getX()与getRawX(),getY()与getRawY()
- MotionEvent的getX(),getY()与getRawX(),getRawY()区
- MotionEvent的getX(),getY()与getRawX(),getRawY()区别
- MotionEvent的getX(),getY()与getRawX(),getRawY()区别
- MotionEvent的getX(),getY()与getRawX(),getRawY()区别
- Kindle 的一些网站
- FragmentTabHost( 选 项卡)
- 【Hibernate】---- 数据缓存
- 动态规划入门——HUDU 2084 数塔
- 更新自己编译android源码遇到的问题
- getRawX、getRawY与getX、getY以及View中的getScrollX、getScrollY
- Python 2.7 执行某一程序并获取PID
- PHP 连接 MySQL(MySQLi方式)
- Item12 Declare overriding function override
- NPOI获取图片详细信息
- RecycleView划线操作
- MySQL常用命令详解
- MyBatis的动态SQL详解
- GIT用法及简介