无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

DEVLOG 9.10(二) 關(guān)于自定義View的一些問題總結(jié):

2021-09-10 20:08 作者:房頂上的鋁皮水塔  | 我要投稿

問題記錄:

  1. View支持wrap_content:?

    自定義View如果繼承View時,如果不去實現(xiàn)onMeasure處理wrap_content,則當(dāng)這個View設(shè)置了wrap_content時,View的長度和父容器中可用長度相同,而且測量模式為AT_MOST。推導(dǎo)

    1. View#onMeasure會調(diào)用View#getDefaultSize,里面會指定View的specSize 為傳過來的MeasureSpec。

    2. 這個MeasureSpec由ViewGroup決定。通過ViewGroup#getChildMeasureSpec可以推導(dǎo)出一張表,可以得出結(jié)論。


1.1 . 怎么處理?

思路:在onMeasure中獲取Image(假設(shè)想wrap_content bitmap)的寬高,然后檢查width和height的LayoutParams屬性,如果是wrap_content,設(shè)置為從bitmap中拿到的大?。环駝t設(shè)置為傳入的測量的大小。


可以參考Android開發(fā)藝術(shù)探索+這篇博客

https://blog.csdn.net/carson_ho/article/details/62037760


2. 完成你的View的時候?qū)崿F(xiàn)padding

padding表示【填料】和margin不同,通俗的理解上margin是外邊距,padding是內(nèi)邊距。繼承自View和ViewGroup的自定義空間肯定沒有實現(xiàn)padding的處理。畢竟實現(xiàn)MeasureSpec的時候計算了LayoutParams,里面就有Margin計算。這個實現(xiàn)也不難,View#getPaddingxxxx獲取padding,減小width和height就行【因為內(nèi)部被填充了,大小減小了】。


今天就這樣~


DEVLOG 9.10(二) 關(guān)于自定義View的一些問題總結(jié):的評論 (共 條)

分享到微博請遵守國家法律
通辽市| 海兴县| 子洲县| 江达县| 同仁县| 阿拉善盟| 台安县| 南召县| 安岳县| 长白| 原平市| 启东市| 临泽县| 镇远县| 长岛县| 昔阳县| 得荣县| 柳河县| 阿克苏市| 托克逊县| 永康市| 江源县| 天门市| 北京市| 卫辉市| 克拉玛依市| 嘉鱼县| 康平县| 北流市| 呈贡县| 工布江达县| 泗洪县| 崇左市| 额尔古纳市| 轮台县| 饶河县| 丰原市| 雷波县| 利津县| 静乐县| 伊春市|