標籤:
前言
第一次註冊部落格,並開始寫部落格,希望自己能夠堅持寫下去(呵呵,堅持乃成功字母)。以後把自己在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 @Override2 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)3 {4 return false;
android中的一些方法理解 onFling,onScroll,onMeasure,onLayout,getLeft,getX,getRawX