view的繪制

MeasureSpec

View的MeasureSpec由父容器的MeasureSpec以及自身的LayoutParams決定的;

[圖片上傳失敗...(image-67326b-1706696414006)]

1:當(dāng)父容器是Exactly模式

如果子view是Exactly模式(當(dāng)用戶(hù)指定了具體的數(shù)值(寬/高)),那么這個(gè)子view的resultSize就是你賦值的這個(gè)具體的值;

如果子view指定是match_parent,那么子view的resultSize依然是父容器給與的最大值,模式還是exactly;

如果子view指定的是wrap_content,那么子view的resultSize還是父容器給與的最大值,但是模式就變成了at_most;

2:當(dāng)父容器是At_most模式

如果子view是Exactly模式(當(dāng)用戶(hù)指定了具體的數(shù)值(寬/高)),那么這個(gè)子view的resultSize就是你賦值的這個(gè)具體的值;

如果子view指定是match_parent,那么子view的resultSize依然是父容器給與的最大值,模式還是at_most;

如果子view指定的wrap_content,子view的resultSize就是父控件的size,模式是at_most;

3:當(dāng)父容器是Unspecified(這個(gè)模式我們基本用不到,大部分都是系統(tǒng)內(nèi)部使用)

如果子view是Exactly模式(當(dāng)用戶(hù)指定了具體的數(shù)值(寬/高)),那么這個(gè)子view的resultSize就是你賦值的這個(gè)具體的值;

如果子view指定的是match_parent,子view的大小為0;模式為Unspecified;

如果子view指定的是wrap_parent,子view的大小為0;模式為Unspecified;

getLeft,getRight,getTop,getBottom,getWidth(),getHeight();

Getleft:子view的左邊界到父view的左邊界的距離;

getRight:子view的右邊界到父view的左邊界距離;

getTop:子view的頂部到父view的頂部距離;

getBottom:子view的底部到父view的頂部距離;

getWidth: getRight-getleft;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 經(jīng)過(guò)上一篇文章的解析,我們熟知了Android在繪制流程之前需要完成的事情。本文將繼續(xù)和大家聊聊onMeas...
    yjy239閱讀 1,972評(píng)論 0 2
  • 這是AndroidUI繪制流程分析的第二篇文章,主要分析界面中View是如何繪制到界面上的具體過(guò)程。 1、View...
    施洛辛閱讀 1,428評(píng)論 0 0
  • 主要記錄學(xué)習(xí)《Android開(kāi)發(fā)藝術(shù)探索》 1. View的繪制過(guò)程: ViewRoot對(duì)應(yīng)ViewRootImp...
    changchengfeng閱讀 358評(píng)論 0 0
  • / 前言 / 本文用于記錄自定義View的基礎(chǔ)步驟以及一些基礎(chǔ)的信息,后期可能針對(duì)具體的點(diǎn)寫(xiě)一些補(bǔ)充性的文...
    ModestStorm閱讀 514評(píng)論 0 0
  • 1 Android視圖層次結(jié)構(gòu) 上圖是針對(duì)比較老的Android系統(tǒng)版本中制作的,新的版本中會(huì)略有出入,但整體上沒(méi)...
    9283856ddec1閱讀 344評(píng)論 0 0

友情鏈接更多精彩內(nèi)容