Android開發 MeasureSpec介紹
在自定義View和ViewGroup的時候,我們經常會遇到int型的MeasureSpec來表示一個元件的大小,這個變數裡面不僅有元件的尺寸大小,還有大小的模式。
這個大小的模式,有點難以理解。在系統中元件的大小模式有三種:
1.精確模式
在這種模式下,尺寸的值是多少,那麼這個元件的長或寬就是多少。
2.最大模式
這個也就是父元件,能夠給出的最大的空間,當前元件的長或寬最大隻能為這麼大,當然也可以比這個小。
3.未指定模式
這個就是說,當前元件,可以隨便用空間,不受限制。
可能有很多人想不通,一個int型整數怎麼可以表示兩個東西(大小模式和大小的值),一個int型別我們知道有32位。而模式有三種,要表示三種狀態,至少得2位二進位制位。於是系統採用了最高的2位表示模式。如圖:
最高兩位是00的時候表示"未指定模式"。即MeasureSpec.UNSPECIFIED
最高兩位是01的時候表示"'精確模式"。即MeasureSpec.EXACTLY
最高兩位是11的時候表示"最大模式"。即MeasureSpec.AT_MOST
很多人一遇到位操作頭就大了,為了操作簡便,於是系統給我提供了一個MeasureSpec工具類。
這個工具類有四個方法和三個常量(上面所示)供我們使用:
//這個是由我們給出的尺寸大小和模式生成一個包含這兩個資訊的int變數,這裡這個模式這個引數,傳三個常量中的一個。
public static int makeMeasureSpec(int size, int mode)
//這個是得到這個變數中表示的模式資訊,將得到的值與三個常量進行比較。
public static int getMode(int measureSpec)
//這個是得到這個變數中表示的尺寸大小的值。
public static int getSize(int measureSpec)
//把這個變數裡面的模式和大小組成字串返回來,方便打日誌
public static String toString(int measureSpec)
相關文章
- Android開發 - 掌握ConstraintLayout(二)介紹AndroidAI
- Kotlin on Android 開發環境介紹KotlinAndroid開發環境
- Android-MeasureSpec那些事Android
- Android之Zygote介紹AndroidGo
- iOS開發- reloadData方法介紹iOS
- 陀螺世界商城開發(介紹)
- ModStartCMS模組開發介紹
- 理解MeasureSpec
- Web專案開發介紹及實戰專案介紹Web
- Web開發小工具介紹Web
- Apple開發者賬號介紹APP
- SOLIDWORKS二次開發介紹Solid
- 從零開始開發Android相機app(三)簡單介紹影象濾鏡功能AndroidAPP
- Android Jetpack 助推應用開發 | 中文字幕視訊介紹AndroidJetpack
- Android系統介紹與框架Android框架
- Android模組化框架介紹Android框架
- Android 輸入系統介紹Android
- Android 應用程式元件介紹Android元件
- Android 動畫 介紹與使用Android動畫
- VS Code外掛開發介紹(二)
- iOS混合開發庫(GICXMLLayout)一、介紹iOSXML
- 介紹一個軟體開發工具
- Flutter混合開發二-FlutterBoost使用介紹Flutter
- Harmony 應用開發常用元件介紹元件
- Three.js開發指南(1):介紹JS
- iOS開發-UITabbarController的介紹與使用iOSUItabBarController
- 元宇宙鏈遊開發與介紹元宇宙
- rk3568核心板開發介紹
- RK3288最新開源開發板介紹
- Android 常用佈局 介紹與使用Android
- Android RxJava:基礎介紹與使用AndroidRxJava
- Android多渠道打包相關介紹Android
- Android入門教程 | AsyncTask 使用介紹Android
- Android Monkey 壓力測試 介紹Android
- Android執行緒池使用介紹Android執行緒
- Android JetPack~ ViewModel (一) 介紹與使用AndroidJetpackView
- Android JetPack~ LiveData (一) 介紹與使用AndroidJetpackLiveData
- Storm介紹&實際開發注意事項ORM
- ArkTS開發HarmonyOS應用目錄介紹