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

來源:互聯網
上載者:User

標籤:

前言

  第一次註冊部落格,並開始寫部落格,希望自己能夠堅持寫下去(呵呵,堅持乃成功字母)。以後把自己在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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.