support v4
最基礎(chǔ)的兼容包旷赖,支持兼容至 API 4 (SDK 1.6)寞宫,新建項(xiàng)目時(shí)默認(rèn)自動(dòng)加載供炼,主要包含F(xiàn)ragment支持、ViewPager涨薪、DrawerLayout等
- ColorUtils:顏色疊加復(fù)合骑素、混合;亮度刚夺、對(duì)比度計(jì)算献丑;HSL、LAB侠姑、XYZ模式轉(zhuǎn)換
- RoundedBitmapDrawableFactory:構(gòu)造圓角Drawable對(duì)象
- LocalBroadcastManager:App內(nèi)本地廣播
- PermissionChecker:權(quán)限檢查器创橄,檢查當(dāng)前App授權(quán)狀態(tài)時(shí),也可通過ContextCompat的checkSelfPermission方法執(zhí)行结借。配合ActivityCompat的requestPermissions筐摘、shouldShowRequestPermissionRationale方法請(qǐng)求授權(quán)和判斷是否需要向用戶解釋權(quán)限用途。覆蓋Activity的onRequestPermissionsResult方法接收權(quán)限申請(qǐng)結(jié)果船老。權(quán)限名稱字符串可從Manifest.permission對(duì)象中提取咖熟。
也可使用第三方庫(kù) PermissionsDispatcher,以注解方式自動(dòng)柳畔、快速執(zhí)行權(quán)限申請(qǐng)邏輯馍管。 - DrawerLayout:側(cè)滑菜單
- SwipeRefreshLayout:下拉刷新
- SlidingPaneLayout:多列面板布局,主要用于平板設(shè)備
- ViewDragHelper:用于拖動(dòng)手勢(shì)的輔助解析類
- ListViewAutoScrollHelper:邊緣觸發(fā)持續(xù)滾動(dòng)的幫助類
- NestedScrollView:允許父容器與當(dāng)前 ScrollView 分享共同處理一個(gè)touch(滾動(dòng))事件能力的增強(qiáng)型 ScrollView薪韩,主要用于 Material Design 中與
AppBarLayout
确沸、CoordinatorLayout
等協(xié)同響應(yīng)UI動(dòng)畫 - Space:輕量級(jí)View,僅用于產(chǎn)生間距分離兩個(gè)Views
support v7
常用兼容包俘陷,支持兼容至 API 7 (SDK 2.1)罗捎,包含AppCompatActivity、Toolbar等(不包含v4包提供的資源拉盾,需同時(shí)引入v4包)
- AppCompatActivity:支持Toolbar和Fragment
- Toolbar
- v7-recyclerview:用于取代GridView和ListView
- v7-cardview:卡片式設(shè)計(jì)UI
- v7-gridLayout:網(wǎng)格布局Layout
- v7-palette:用于分析圖像中某種特征顏色的工具
Design Support Library
提供符合 Material Design 設(shè)計(jì)風(fēng)格的標(biāo)準(zhǔn)控件桨菜,兼容至 Android 2.2(API 8)。
- Snackbar:類似Toast模式的臨時(shí)消息展示視圖捉偏,并提供按鈕在有限時(shí)間內(nèi)觸發(fā)反饋(一定時(shí)間后自動(dòng)消失)
- TextInputLayout:用于作為
EditText
(建議使用TextInputEditText
)的父容器倒得,以浮動(dòng) Label 方式展示 Hint 內(nèi)容,并可以代碼方式指定具體顯示的提示文字和樣式夭禽,如 Error 等 - TextInputEditText:
EditText
子類霞掺,用于在橫屏模式的全屏鍵盤(extract mode)下,恢復(fù)提示文本的顯示 - Floating Action Button:浮動(dòng)的 “ + ”(或設(shè)置為其他圖形) 按鈕
- TabLayout:類似于
PagerSlidingTabStrip
的選項(xiàng)卡導(dǎo)航欄 - NavigationView:用于在
DrawerLayout
中作為側(cè)拉導(dǎo)航菜單標(biāo)準(zhǔn)組件讹躯,通過app:headerLayout
指定頭布局菩彬,通過app:menu
指定菜單區(qū)域布局(通過標(biāo)準(zhǔn)menu
元素布局自動(dòng)生成) -
CoordinatorLayout:通過指定
Behavior
處理器對(duì)特定的 ChildView 相對(duì)其他 DependencyView 的位置變化進(jìn)行響應(yīng)(或者說做相對(duì)同步移動(dòng)布局)缠劝,也可以做位置變化以外的其他響應(yīng)動(dòng)作(透明度、尺寸等)- Behavior:用于指定當(dāng)前View(Child)相對(duì)于其他View(Dependency)作出自定義響應(yīng)的邏輯腳本監(jiān)聽類
- app:layout_behavior:用于
CoordinatorLayout
里的 ChildView 上挤巡,指定當(dāng)前 View 相對(duì)于其他 View 的相對(duì)動(dòng)作響應(yīng)處理器
-
AppBarLayout:用于將多個(gè)組件組合作為一個(gè) AppBar 的垂直
LinearLayout
容器剩彬,可與其他組件產(chǎn)生互動(dòng)動(dòng)畫(例如在ScrollView
滾動(dòng)時(shí)酷麦,該 AppBar 同步消失等矿卑,通常搭配NestedScrollView
使用)。通過其子View的app:layout_scrollFlags
屬性沃饶,指定各部分的同步滾動(dòng)表現(xiàn)母廷。支持同步滾動(dòng)的組件類需實(shí)現(xiàn)NestedScrollingChild
接口(此后可通過ViewCompat
等類設(shè)置開關(guān)),或直接使用NestedScrollView
類 - NestedScrollView:位于 v4 support 包中糊肤,主要目的與
AppBarLayout
配合在CoordinatorLayout
布局下實(shí)現(xiàn)相對(duì)滾動(dòng)動(dòng)作琴昆,常直接使用內(nèi)置Behavior
:@string/appbar_scrolling_view_behavior
- CollapsingToolbarLayout:用于包裝
Toolbar
的FrameLayout
,提供可視化的縮放拉伸視覺效果(主要作用于Toolbar
與其背景圖片)馆揉,需要放置在AppBarLayout
下作為直接子View使用业舍,使用方式可參考 玩轉(zhuǎn)AppBarLayout - BottomSheetBehavior:以底部上拉菜單形式滑動(dòng)推出View,支持拖動(dòng)占滿全屏升酣,常用于
NestedScrollView
中的app:layout_behavior
參數(shù)中舷暮,在CoordinatorLayout
布局下生效,可通過BottomSheetBehavior.from(View)
方式取得與View綁定的Behavior
對(duì)象噩茄,并手動(dòng)設(shè)置狀態(tài)進(jìn)行彈出 / 隱藏 - BottomSheetDialog:以 BottomSheet 形式從底部推出的 Dialog下面,基于標(biāo)準(zhǔn) Dialog,可填充任何自定義View绩聘,自動(dòng)高亮模式(背景變暗)
- BottomSheetDialogFragment:DialogFragment 形式的
BottomSheetDialog
(Google推薦使用 DialogFragment 來創(chuàng)建自定義 Dialog沥割,提供類似 Fragment 的生命周期管理,自動(dòng)維護(hù)不同屏幕環(huán)境下的表現(xiàn)和自動(dòng)現(xiàn)場(chǎng)恢復(fù))
※ Material Design 主題顏色可通過 style 中的 colorAccent 變量來指定
參考:
Annotations Support Library
一組 Android 專用的注解凿菩,用于標(biāo)記資源類型机杜、運(yùn)行線程、數(shù)值范圍衅谷、非空椒拗、權(quán)限、保留不做混淆標(biāo)記等目的会喝。常用于輔助調(diào)用者使用符合協(xié)議規(guī)范的參數(shù)或調(diào)用方式陡叠,減少歧義邏輯錯(cuò)誤。
compile 'com.android.support:support-annotations:25.+'
參考:
- Improve Code Inspection with Annotations
- Android注解支持(Support Annotations)
- 在 Android 使用 Support Annotations 注解優(yōu)化代碼
- Android 注解
Percent Support Library
專注提供以百分比劃分空間的布局類肢执,分別為PercentRelativeLayout
與PercentFrameLayout
枉阵,支持子控件在寬高以及margin上使用百分比數(shù)字進(jìn)行約束:
compile 'com.android.support:percent:22.2.0'
<android.support.percent.PercentFrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_heightPercent="20%"
app:layout_widthPercent="30%"/>
...
Android SDK專用的幾個(gè)結(jié)構(gòu)類
- SparseArray:稀疏數(shù)組
- atomic包:原子級(jí)同步類型
- CircularArray:環(huán)形數(shù)組,多用于緩存预茄,減少內(nèi)存申請(qǐng)釋放的性能開銷