⑴ 騰訊QMUI Android框架使用(一)入門及目錄
把項目的 theme 的 parent 指向 QMUI.Compat,至此,QMUI 可以正常工作。
你可以通過在項目中的 theme 中用
的形式來覆蓋 QMUI 組件的默認表現。具體可指定的屬性名請參考 @style/QMUI.Compat 中的屬性。
對 Button 提供圓角功能,支持以下特性:
1.指定圓角的大小。
2.分別指定不同方向的圓角大小。
3.指定圓角的大小為高度的一半,並跟隨高度變化自適應圓角大小。
4.支持分別指定背景色和邊框色,指定顏色時支持使用 color 或 ColorStateList。
提供了一系列常用的對話框,解決了使用系統默認對話框時在不同 Android 版本上的表現不一致的問題。使用不同的 Builder 來構建不同類型的對話框,這些 Builder 都擁有設置 title 和添加底部按鈕的功能,不同的 Builder 特有的作用如下:
1.MessageDialogBuilder: 消息類型的對話框 Builder。通過它可以生成一個帶標題、文本消息、按鈕的對話框。
2.ConfirmMessageDialogBuilder: 帶 Checkbox 的消息確認框 Builder。
3.EditTextDialogBuilder: 帶輸入框的對話框 Builder。
4.MenuDialogBuilder: 菜單對話框 Builder。
5.CheckableDialogBuilder: 單選類型的對話框 Builder。
6.MultiCheckableDialogBuilder: 多選類型的對話框 Builder。
7.CustomDialogBuilder: 自定義對話框內容區域的 Builder。
8..AutoResizeDialogBuilder: 隨鍵盤升降自動調整 Dialog 高度的 Builder
類似 CSS 里 float: left 的浮動布局,從左到右排列子 View 並自動換行。支持以下特性:
1.控制子 View 之間的垂直/水平間距。
2.控制子 View 的水平對齊方向(左對齊/居中/右對齊)。
3.限制子 View 的個數或行數。
通用的空界面控制項,支持顯示 loading、主標題和副標題、圖片。
用於橫向多個 Tab 的布局,包含多個特性:
1.可以用 xml 或 QMUITabSegment 提供的 set 方法統一配置文字顏色、icon 位置、是否要下劃線等。
2.每個 Tab 都可以非常靈活的配置,內容上支持文字和 icon 的顯示,icon 支持選中態,支持內容的排版對齊方向設置,支持顯示紅點,3.支持插入自定義的 View,支持監聽雙擊事件等。
4.可以通過 setupWithViewPager(ViewPager) 方法與 ViewPager 綁定。
一個進度條控制項,通過顏色變化顯示進度,支持環形和矩形兩種形式,主要特性如下:
1.支持在進度條中以文字形式顯示進度,支持修改文字的顏色和大小。
2.可以通過 xml 屬性修改進度背景色,當前進度顏色,進度條尺寸。
3.支持限制進度的最大值。
通用的列表,常用於 App 的設置界面,注意其父類不是 ListView 而是 LinearLayout,所以一般要配合 ScrollView 使用。提供了 Section 的概念,用來將列表分塊。 配合 QMUIGroupListView.Section, QMUICommonListItemView 和 使用。
提供一個浮層展示在屏幕中間,提供了以下兩種樣式:
1.使用 QMUITipDialog.Builder 生成,提供了一個圖標和一行文字的樣式, 其中圖標有 Loading、成功、失敗等類型可選。
2.使用 QMUITipDialog.CustomBuilder 生成,支持傳入自定義的 layoutResId。
提供為圖片添加圓角、邊框、剪裁到圓形或其他形狀等功能。
在 TextView 的基礎上支持文字豎排。
下拉刷新控制項。支持自定義 RefreshView(表示正在刷新的 View),觸發刷新的位置等特性。
提供一個浮層,支持自定義浮層的內容,支持在指定 View 的任一方向旁邊展示該浮層,支持自定義浮層出現/消失的動畫。
相比 TextView,修正了兩個常見問題:
修正了 TextView 與 ClickableSpan 一起使用時,點擊 ClickableSpan 也會觸發 TextView 的事件的問題。
修正了 TextView 默認情況下如果添加了 ClickableSpan 之後就無法把點擊事件傳遞給 TextView 的 Parent 的問題。
使 TextView 能自動識別 URL、電話、郵箱地址,相比 TextView 有以下特點:
1.可以設置鏈接的樣式。
2.可以設置鏈接的點擊事件。
1.支持顯示表情的偽 TextView(繼續自定義 View,而不是真正的 TextView), 實現了 TextView 的 maxLine、ellipsize、textSize、textColor 等基本功能。
2.支持與 QMUITouchableSpan 配合使用實現內容可點擊。
支持二級結構的列表的折疊與展開;支持滾動時懸浮當前 section header; 支持在section list 或 section item list 前後添加自定義 View。
對 QMUITopBar 的包裹類,並代理了 QMUITopBar 的方法。配合 QMUIWindowInsetLayout 使用,可使 QMUITopBar 在支持沉浸式狀態欄的界面中頂部延伸到狀態欄。
⑵ Android創建應用全局小窗口
類似微信視頻、語音時點擊返回會形成一個App小窗口浮動在界面上,點擊繼續是通通話,如下圖:
其實實現這個功能只需要你細心分析一下就有思路了:首先這個小窗口是浮動在app最上層的視圖,其次所有觸屏事件需先由該小窗口處理,還有就是小窗口的生命周期和Application也能雖可能不能同生,但是確是可以共死。所以可以在Application中創建一個view添加到WindowManage,這里將視圖為view的window的type設置成系統級別的窗口,這樣這個window可以在在全局呈現。另外,還需要讓這個window可以隨手指拖動而滑動,手指釋放後會回彈到距離這個釋放點最近的屏幕側邊,所以需要重寫view 的OnTouch事件。
以上就能實現一個應用內小窗口了,這里windowManager的布局參數有坑要踩: