Android自定義view的生命週期

2021-10-19 19:43:58 字數 990 閱讀 2971

定義乙個自定義customview,在xml中載入,列印mainactivity和view各個生命週期方法,對比如圖顯示

自定義view的生命週期過程主要分為三個環節,初始準備,監測繪製,銷毀

如圖所示,一開始view在xml中載入,呼叫建構函式customview(context contextt, attributeset attrs),當從xml中載入完成後,呼叫onfinishinflate 方法,這時view完成初始準備環節。

view的繪製發生在activity onresume之後,確切來說是在onattachedtowindow之後,onattachedtowindow是將view繫結到activity所在window,附加到window後,程式開始進行所有view的繪製。

p.s.如果view中需要註冊監聽,開始執行某動畫效果,可以在onattachedtowindow中開始呼叫執行。

我們都知道自定義view繪製當中最重要的有三個方法,onmeasure onlayout ondraw

onmeasure 計算view高度寬度大小

onlayout 計算view位置

ondraw 繪製view

view繪製過程中為了確認view大小,會多次重複呼叫onmeasure。這跟view繪製機制有關,有興趣可以去官網了解how android draws views

onwindowfocuschanged是判斷view是否獲取焦點,引數haswindowfocus 對應返回true 和false 可以用該方法判斷view進出後台

ondetachedfromwindow當activity銷毀之後,view會從window上抽離,此時view銷毀。

附上view生命週期簡圖

Android自定義View 自定義元件

自繪控制項也分兩種,自定義元件和自定義容器,自定義元件是繼承view類,自定義容器時繼承viewgrounp 今天主要分析下自定義元件 還是舉個例子來的實際些,假如我們要畫乙個最簡單的textview,首先想到的就是canvas.drawtext 方法,怎麼畫了?還是得一步一步來 1 寫乙個myte...

Android自定義View 一 View的測量

想要讓系統繪製出你所需要的圖形,就必須告訴系統view的大小,所以,在繪製view時,先實現view的onmesure 方法。在測量view之前,要先了解measurespec這個類,measurespec物件中包含了測量的模式和測量的大小 measurespec.exactly 精確模式 當我們將...

Android自定義View實現

android自定義view實現很簡單 繼承view或者其子類,重寫建構函式 ondraw,onmeasure 等函式,根據繼承的類的不同可能有所不同。如果自定義的view需要有自定義的屬性,需要在values下建立attrs.xml。在其中定義你的屬性。在使用到自定義view的xml布局檔案中需要...