• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Android下如何理解onMeasure,onLayout的過程

    發表于:2013-04-07來源:新浪博客作者:樹立風中點擊數: 標簽:軟件測試AndroidonMeasureonLayout
    在Android中view如何完成繪制這個過程介紹了很多,但是很多理論化的東西,最近重新整理一下,通俗的講解一下。View繪制過程就好比你向銀行貸款,
          在Android中view如何完成繪制這個過程介紹了很多,但是很多理論化的東西,最近重新整理一下,通俗的講解一下。
     

      View繪制過程就好比你向銀行貸款,

      在執行onMeasure的時候,好比銀行告訴你大概貸款額度有多少?你根據自己的需求,進行各方面的計算,計算出一個自己大概需要的金額,然后告訴詢問需要多少貸款。貸款額度好比顯示空間大小。

      實際代碼執行過程是這樣

      onMeasure(int widthMeasureSpec, int heightMeasureSpec),其中widthMeasureSpec和heightMeasureSpec是銀行告訴的大致額度。然后內部計算完成后,通過setMeasuredDimension(width, height)將實際需要的大小返回給父view。

      即onMeasure用來確定確定view顯示的大小(通過調用子view的measure,來確定子view的大小)

      在執行onLayout的時候,好比銀行收到你的貸款請求后,根據自身儲備的情況及你的資質情況,批發了貸款的額度及領取的時間。領取的時間好比顯示的起始位置,額度好比是顯示空間的大小。

      實際代碼執行過程是這樣的

      onLayout(boolean changed, int left, int top, int right, int bottom)-確定view在父類中的顯示位置,通過對子view的位置計算,通過調用子view的layout將在父類中的位置設置給子view。

      在執行dispatchDraw的時候,好比你去銀行真正獲取貸款,拿到你需要的錢了,簽署各類合同和手續,完成你的貸款過程。

      在dispatchDraw的過程是在指定的空間內繪制你需要繪制的內容,可以通過drawChild實現內部子view的繪制。

    原文轉自:http://blog.sina.com.cn/s/blog_74bd788f0101axnc.html

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>