码迷,mamicode.com
首页 > 移动开发 > 详细

android中的一些方法理解 onFling,onScroll,onMeasure,onLayout,getLeft,getX,getRawX

时间:2015-09-08 12:33:46      阅读:328      评论:0      收藏:0      [点我收藏+]

标签:

前言

  第一次注册博客,并开始写博客,希望自己能够坚持写下去(呵呵,坚持乃成功字母)。以后把自己在android方面的理解,或者别的博友的优秀代码片段都写入自己的博客,一是方便自己日后回顾(温故而知新嘛),二是给需要的同学阅读了解。

正文

  下面开始讲下我对onFling,onScroll,onMeasure,onLayout,getLeft,getX,getRawX这几个方法的理解。

  onFling

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return false; }

  该方法是GestureDetector(手势)类中OnGestureListener接口的方法,指手势的滑动。e1:手势起点的移动事件,e2:当前手势点的移动事件,velocityX:每秒x轴方向移动的像素,velocityY:每秒y轴方向移动的像素。
说的更简单点就是,手势相当于一个向量(当然有可能手势是曲线),e1为向量的起点,e2为向量的终点,velocityX为向量水平方向的速度,velocityY为向量垂直方向的速度。

    

 onScroll

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { return false; }

  该方法也是GestureDetector(手势)类中OnGestureListener接口的方法,指手势的拖动。
e1:初次触控屏幕e2:每次触发onScroll函数得到的事件distance是上一次的e2 减去 当前e2得到的结果 //注意到顺序 distance = lastEvent2 - event2


 


  onMeasure

 @Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {    }

  自定义控件需要重写的方法,该方法是测量控件在屏幕上的大小。http://blog.csdn.net/a396901990/article/details/36475213 这篇博客写的很好,可以参考看看

 

 

@Override
    protected void onLayout(boolean changed, int l, int t, int r, int b)
    {
        super.onLayout(changed, l, t, r, b);
    }

自定义控件需要重写的方法,该方法是绘制控件在屏幕上的位置。http://blog.csdn.net/a396901990/article/details/36475213 这篇博客写的很好,可以参考看看
 

 

  View.getLeft():子类左边到父类左边的距离,View.getRight()子类右边到父类左边的距离,View.getTop():子类上边到父类上边的距离,View.getButtom:子类下边到父类上边的距离。View.getWith()=View.getRight()-View.getLeft()或者     View.getButtom-View.getTop()。

 

  event.getX()指事件点击View,获取到View本身内部到左边的距离。event.getRawX()指事件点击View,获取到View的左边在整个屏幕中的距离。

 

总结

  以上几个方法是本人最近百度资料学习到的几个方法的浅理解。

前言1 @Override
2     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
3     {
4         return false;

android中的一些方法理解 onFling,onScroll,onMeasure,onLayout,getLeft,getX,getRawX

标签:

原文地址:http://www.cnblogs.com/gordon-lv/p/4790026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!