/**
* 原始碼分析:layout()
* 作用:確定view本身的位置,即設定view本身的四個頂點位置
*/public
void
layout
(int l,
int t,
int r,
int b)
/** * 分析1:setframe()
* 作用:根據傳入的4個位置值,設定view本身的四個頂點位置
* 即:最終確定view本身的位置
*/protected
boolean
setframe
(int left,
int top,
int right,
int bottom)
/** * 分析2:setopticalframe()
* 作用:根據傳入的4個位置值,設定view本身的四個頂點位置
* 即:最終確定view本身的位置
*/private
boolean
setopticalframe
(int left,
int top,
int right,
int bottom)
// 回到呼叫原處
/** * 分析3:onlayout()
* 注:對於單一view的laytou過程
* a. 由於單一view是沒有子view的,故onlayout()是乙個空實現
* b. 由於在layout()中已經對自身view進行了位置計算,所以單一view的layout過程在layout()後就已完成了
*/protected
void
onlayout
(boolean changed,
int left,
int top,
int right,
int bottom)
/**
* 原始碼分析:layout()
* 作用:確定view本身的位置,即設定view本身的四個頂點位置
* 注:與單一view的layout()原始碼一致
*/public
void
layout
(int l,
int t,
int r,
int b)
/** * 分析1:setframe()
* 作用:確定view本身的位置,即設定view本身的四個頂點位置
*/protected
boolean
setframe
(int left,
int top,
int right,
int bottom)
/** * 分析2:setopticalframe()
* 作用:確定view本身的位置,即設定view本身的四個頂點位置
*/private
boolean
setopticalframe
(int left,
int top,
int right,
int bottom)
// 回到呼叫原處
/** * 分析3:onlayout()
* 作用:計算該viewgroup包含所有的子view在父容器的位置()
* 注:
* a. 定義為抽象方法,需重寫,因:子view的確定位置與具體布局有關,所以onlayout()在viewgroup沒有實現
* b. 在自定義viewgroup時必須複寫onlayout()!!!!!
* c. 複寫原理:遍歷子view 、計算當前子view的四個位置值 & 確定自身子view的位置(呼叫子view layout())
*/protected
void
onlayout
(boolean changed,
int left,
int top,
int right,
int bottom)
}}
Android之View的事件體系
velocitytracker,gesturedetector,scroller 1.velocitytracker 速度追蹤 在ontouch中新增 override public boolean ontouch view v,motionevent event 不過回頭一看,發現書中是放在ont...
android之View和ViewGroup介紹
activity中包含views和viewgroups 檢視組 android 中的view與我們以前理解的 檢視 不同。在android中,view比檢視具有更廣的含義,它包含了使用者互動和顯示,更像windows操作 系統中的window。viewgroup是view的子類,所以它也具有view...
android之View的啟動過程
程式裡呼叫了onsizechanged方法進行了一些設定,不知道onsizechanged是在什麼時候啟動的,所以研究了一下view的啟動流程 如下 public class testview extends view public testview context context,attribut...