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