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

前言

  第一次注册博客,并开始写博客,希望自己能够坚持写下去(呵呵,坚持乃成功字母)。以后把自己在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;

转载于:https://www.cnblogs.com/gordon-lv/p/4790026.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值