最近由于工作緊張潮孽,沒(méi)有更新博客揪荣,通過(guò)幾個(gè)項(xiàng)目經(jīng)驗(yàn),小哥兒又準(zhǔn)備了一大波Android開(kāi)發(fā)技能跟大家分享往史。
來(lái)不及解釋了仗颈,準(zhǔn)備好了嘛?快上車椎例!
1. QMUI已開(kāi)源挨决,頁(yè)面開(kāi)發(fā)新技能,騰訊出品订歪,必屬精品脖祈。
使用QMUI已經(jīng)有一段時(shí)間了,但是小哥也有幾個(gè)技術(shù)交流群刷晋,問(wèn)及QMUI的體驗(yàn)時(shí)盖高,用過(guò)的都說(shuō)好~ 但是,還有很多小伙伴對(duì)于QMUI的官網(wǎng)的文檔說(shuō)明表示看不懂眼虱。呃喻奥。。捏悬。確實(shí)映凳,因?yàn)樾「缫彩强戳撕脦妆槲臋n沒(méi)搞明白文檔說(shuō)的什么,所以呢邮破,小哥就把官網(wǎng)的demo源碼down下來(lái)看了一下,其實(shí)也不難仆救,小哥也建議大家通過(guò)demo學(xué)習(xí)使用抒和, 點(diǎn)擊直達(dá)QMUI官網(wǎng)
好了,廢話不多說(shuō)彤蔽,開(kāi)車摧莽!
2.QMUI配置
配置很簡(jiǎn)單,跟著我一步步走顿痪,總共三步:一步配置依賴镊辕,一步修改主題。
1.引入庫(kù)
- As導(dǎo)入依賴
compile 'com.qmuiteam:qmui:1.0.4'
在build.gradle(module:app)的dependencies的閉包中添加QMUI依賴
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
********************************************
* compile 'com.qmuiteam:qmui:1.0.4' //QMUI *
********************************************
}
2. 配置主題
- 修改主題蚁袭,官方文檔說(shuō)的有點(diǎn)含糊不清征懈,其實(shí)其意思就是將AndroidManifest的application指向的theme(按住
ctrl
點(diǎn)擊@style/AppTheme
)的parent
根布局修改為QMUI的根元素QMUI.Compat
(有actionbar)或者QMUI.Compat.NoActionBar
(無(wú)actionbar,項(xiàng)目經(jīng)常用揩悄,個(gè)人推薦)卖哎。至此,QMUI控件都可以使用了。
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="QMUI.Compat.NoActionBar"> // <<<<====修改這里哦
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
截至以上一步QMUI已經(jīng)可以使用了亏娜,但是這樣QMUI中有些控件的顏色并還是默認(rèn)的焕窝,可以通過(guò)覆蓋
item
的方式修改控件顏色,此步驟最好配合QMUI的Demo點(diǎn)擊直達(dá)QMUIDemo维贺,缺少什么復(fù)制什么就好它掂,然后根據(jù)項(xiàng)目的主題顏色進(jìn)行修改。
溯泣。(根據(jù)項(xiàng)目需要虐秋,這步可以省略。)
<!-- Base application theme. -->
<style name="AppTheme" parent="QMUI.Compat.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!-- 配置Android提供的theme -->
<item name="android:textAppearanceListItemSmall">@style/QDTextAppearanceListItemSmall</item>
<item name="android:textAppearanceListItem">@style/QDtextAppearanceListItem</item>
<item name="android:listPreferredItemHeight">?attr/qmui_list_item_height_higher</item>
<item name="android:listPreferredItemHeightSmall">?attr/qmui_list_item_height</item>
<!-- 配置qmui提供的theme -->
<item name="qmui_config_color_blue">@color/app_color_blue</item>
<item name="qmui_topbar_title_color">@color/qmui_config_color_white</item>
<item name="qmui_topbar_subtitle_color">@color/qmui_config_color_white</item>
<item name="qmui_topbar_text_btn_color_state_list">@color/s_topbar_btn_color</item>
<item name="qmui_topbar_height">48dp</item>
<item name="qmui_topbar_image_btn_height">48dp</item>
<item name="qmui_round_btn_bg_color">@color/s_btn_blue_bg</item>
<item name="qmui_round_btn_border_color">@color/s_btn_blue_border</item>
<item name="qmui_round_btn_text_color">@color/s_btn_blue_text</item>
<item name="qmui_content_spacing_horizontal">20dp</item>
<item name="qmui_content_padding_horizontal">@dimen/qmui_content_spacing_horizontal</item>
<item name="QMUITopBarStyle">@style/QDTopBar</item>
<!-- 配置app自己的theme -->
<item name="app_primary_color">?attr/qmui_config_color_blue</item>
<item name="app_content_bg_color">@color/qmui_config_color_white</item>
</style>
Demo很大发乔,加載的時(shí)候挺慢的熟妓,耐心等待編譯即可
Demo中包含很多依賴庫(kù),運(yùn)行Demo時(shí)運(yùn)行全部文件栏尚,不要只運(yùn)行
qmuidemo
部分-
QMUI的控件都在
qmuidemo
中的的package下的fragment中起愈,里面有詳細(xì)的使用
QMUI組件位置 -
Demo正常結(jié)構(gòu)是這樣的:
QMUIDemo的項(xiàng)目正確結(jié)構(gòu)
Bingo! 配置已經(jīng)搞定啦,接下來(lái)就是QMUI控件的使用了译仗,炒雞激動(dòng)~
3. QMUI組件使用
QMUI的組件非常非常的豐富:
- 自動(dòng)圓角的button(上下左右圓角都可設(shè)定抬虽,圓角可自行指定)
- 圓形、橢圓imageview(不多說(shuō)纵菌,Glide也可以實(shí)現(xiàn))
- Dialog(普通彈窗(彈窗按鈕自定顏色阐污,警告顏色(比如刪除),正常顏色)咱圆;多item單選菜單彈窗笛辟,多item復(fù)選彈窗,根據(jù)鍵盤(pán)高度自適應(yīng)高度dailog(比如dailog中有editText序苏,鍵盤(pán)有肯能被遮擋手幢,踩過(guò)坑的都知道))。
- 流布局(搜索中歷史記錄忱详,購(gòu)物車頁(yè)面的型號(hào)什么的围来,因?yàn)樽謹(jǐn)?shù)不確定,用GridLayout適配很不友好)
- tablayout(Material Desig庫(kù)中的也有匈睁,但是QMUI中有各式各樣的监透,你一定會(huì)愛(ài)上它)
- 可以回滾的progressbar(進(jìn)度條:橫向,圓形都有)
- 多種動(dòng)畫(huà)樣式的下拉刷新
- 萬(wàn)能設(shè)置頁(yè)面(系統(tǒng)設(shè)置頁(yè)面再也不用寫(xiě)了航唆,一個(gè)控件集成搞定)
- 可以垂直顯示的textview胀蛮,根據(jù)寬帶高度自動(dòng)適配字體大小的textview(Android8.0也可以了,textview寬高指定后佛点,
android:autoSizeTextType="uniform"
醇滥,字體大小會(huì)自動(dòng)適配黎比,給親爹點(diǎn)贊,ios說(shuō)了:“切鸳玩,老子天生自帶阅虫!”),自動(dòng)識(shí)別網(wǎng)址URL不跟,Emai颓帝,phone的textview,點(diǎn)擊就跳轉(zhuǎn)~ - popwindow(除了基本的窝革,還可以pop列表)
- QQ表情view(拿來(lái)就用)
- viewpager(底部導(dǎo)航欄+viewpager已經(jīng)封裝好了购城,拿走就用;自帶翻轉(zhuǎn)效果的viewpager(類似探探左右滑效果))虐译;和一些常用的布局(其實(shí)用Material Desig都可以實(shí)現(xiàn)瘪板,不多介紹)
- 一行代碼沉浸式
- 設(shè)備型號(hào)判斷(mi啊,Meizu啊漆诽,Huawei啊侮攀,這些適配惡心的機(jī)型,<== 不黑不吹)厢拭,浮窗權(quán)限判斷兰英。
- 通過(guò)一個(gè)View生成一個(gè)bitmap對(duì)象(俗稱截屏)
- 更多的常用工具類(比如dp2px等等)
由于工作時(shí)間關(guān)系,我要下班啦供鸠,好開(kāi)森畦贸,先寫(xiě)到這里吧,后續(xù)后詳細(xì)講解QMUI組件的詳細(xì)使用楞捂。
空歡喜就是早上醒來(lái)薄坏,以為自己長(zhǎng)高了,仔細(xì)一看寨闹,原來(lái)是tm被子蓋橫了…… Embarrassing~