Android5.0中Material Design的新特性
Material Design簡介
Material Design是谷歌新的設(shè)計(jì)語言,谷歌希望寄由此來統(tǒng)一各種平臺上的用戶體驗(yàn),Material Design的特點(diǎn)是干凈的排版和簡單的布局,以此來突出內(nèi)容。
Material Design對排版、材質(zhì)、配色、光效、間距、文字大小、交互方式、動(dòng)畫軌跡都做出了建議,以幫助設(shè)計(jì)者設(shè)計(jì)出符合Material Design風(fēng)格的應(yīng)用。
Material Design設(shè)計(jì)語言鼓勵(lì)大家使用充滿活力的鮮艷色彩,并在同一界面建議使用三種色調(diào),并保障有一個(gè)強(qiáng)色調(diào),強(qiáng)色一般處于處于視圖最底層,例如狀態(tài)欄或者actionbar。通過強(qiáng)色調(diào)形成鮮明的對比,更容易突出內(nèi)容的重要性。對于文字色彩的取值,Material Design建議在淺色背景上采用黑色,在深色背景上采用白色。重要信息和標(biāo)題采用87%透明度,次要文字采用54%透明度,而更次要的說明文字可以采用26%的透明度。對于想特別突出或者可點(diǎn)擊的文字,建議使用強(qiáng)色調(diào)。不同層級的視圖,可以通過陰影來凸顯。對于帶有操作且內(nèi)容突出的區(qū)域,可以使用cardview進(jìn)行隔離,對于內(nèi)容不太重要或者操作比較單一的區(qū)域,可以使用分割線進(jìn)行隔離。
最近項(xiàng)目中需要用到Material Design,整理了下面幾個(gè)常用的控件,以便記憶。
一、Snackbar
1.作用:與Toast類似,但是可以點(diǎn)擊監(jiān)聽;
2.使用:
(1)Snackbar調(diào)用靜態(tài)類make(),傳入三個(gè)參數(shù):View父組件,文本,顯示時(shí)間;
(2)Snackbar調(diào)用setAction(),傳入兩個(gè)參數(shù):文本,點(diǎn)擊監(jiān)聽事件實(shí)現(xiàn)OnClickListener接口;
(3)顯示show()與隱藏dismiss();
二、TextInputLayout
1.作用:包裹在EditText外邊,可以將文本在EditText上方提示,同時(shí)可以設(shè)置錯(cuò)誤提示;
2.使用:
(1)TextInputLayout對象調(diào)用setErrorEnable(),傳入boolean類型參數(shù)表示是否顯示錯(cuò)誤信息;
(2)TextInputLayout對象調(diào)用SetError(),設(shè)置錯(cuò)誤信息;
三、FloationgActionButton
1.作用:懸浮在頁面上方的按鈕;
2.特有屬性:
app:elevation="5dp" //陰影效果
app:pressedTranslationZ="10dp" //按壓時(shí)顯示效果
app:rippleColor="@color" //顏色
四、DrawerLayout
1.作用:作為布局的子布局,實(shí)現(xiàn)左右兩側(cè)的側(cè)滑效果,用于添加菜單;
2.使用:(1)以DraweLayout作為根布局,內(nèi)部可以包含三個(gè)及三個(gè)以下布局;
(2)為作為菜單的布局設(shè)置android:layout_gravity屬性,在左側(cè)顯示值為”left”,在右側(cè)顯示值為”right”;
(3)動(dòng)態(tài)打開或關(guān)閉DrawerLayout中的布局:
DraweLayout對象調(diào)用openDrawer(),傳入Gravity.Left或者Gravity.Right兩種參數(shù)值打開關(guān)閉布局;
DrawerLayout對象調(diào)用closeDrawer(),傳入兩種參數(shù)值關(guān)閉布局;
五、NavigationView
1.作用 :作為導(dǎo)航欄或者菜單欄的Menu視圖添加;
2.使用:(1)靜態(tài)屬性:app:headerLayout添加頭布局文件;
?。?)靜態(tài)屬性:app:menu添加菜單文件;
?。?)設(shè)置頭視圖監(jiān)聽:
(3-1)得到頭視圖:NavigationView對象調(diào)用getHeaderView(),傳入索引號0;
注意:如果沒有g(shù)etHeaderView(),可以使用findViewById()得到頭視圖;
(3-2)找控件:頭視圖調(diào)用findViewById()得到頭視圖中的控件;
?。?-3)設(shè)置監(jiān)聽事件:得到的控件調(diào)用setOnClickListener();
?。?)設(shè)置menu按鈕監(jiān)聽:
NavigationView對象調(diào)用setNavigationItemSelectedListener(),
傳入NavigationView. OnNavigationViewIntemSelectedListener接口,
重寫onNavigationItemSelected()接口;
六、TabLayout
1.作用:與ViewPager結(jié)合,達(dá)到聯(lián)動(dòng)導(dǎo)航效果;
2. 靜態(tài)屬性:
1 app:tabIndicatorColor="@color/colorAccent"
2 app:tabIndicatorHeight="5dp"
3 app:tabSelectedTextColor="@color/colorAccent"
4 app:tabTextColor="#ffffff"
3.動(dòng)態(tài)使用:
(1)聲明并實(shí)例化TabLayout,ViewPager;
(2)為ViewPager控件設(shè)置適配器;
(3)設(shè)置Tablayout與ViewPager的聯(lián)動(dòng):
(3-1)TabLayout對象調(diào)用setupWithViewPager()傳入要聯(lián)動(dòng)的ViewPager對象;
?。?-2)在自定義ViewPager的適配器中,重寫getPageTitle(),返回當(dāng)前標(biāo)題;
(3-3)TabLayout對象調(diào)用setTabMode(),傳入TabLayout.MODE_SCROLLABLE常量,設(shè)置TabLayout的滾動(dòng);
七、NestedScrollView
1.作用:替代ScrollView;
2.使用:與ScrollView相同,內(nèi)部只能有一個(gè)子控件;
八、Toolbar
1.作用:
注意:使用Toolbar時(shí)必須將該Activity的主題設(shè)置為NoActionBar屬性值;
2.使用:Toolbar控件必須放在AppBarLayout控件中,而AppBarLayout最好放在CoordinatorLayout控件(協(xié)同布局)中;
3.靜態(tài)屬性:
1 app:layout_scrollFlags=”scroll|enterAlways” //Toolbar控件中,設(shè)置滑動(dòng)響應(yīng)事件;
2 app:title=”” //為Toolbar設(shè)置標(biāo)題名;
3 app:layout_behavior="@string/appbar_scrolling_view_behavior" //NestedScrollView控件中,設(shè)置控件行為
4.動(dòng)態(tài)方法:
(4-1)聲明并實(shí)例化Toolbar控件實(shí)例;
(4-2)將ActionBar設(shè)置為Toolbar:在當(dāng)前Activity中調(diào)用setSupportActionBar(),傳入新創(chuàng)建的Toolbar對象;
(4-3)當(dāng)前Activity主題修改為NoActionBar模式:在清單文件中設(shè)置當(dāng)前Activity標(biāo)簽下的屬性android:theme="@style/Theme.AppCompat.NoActionBar";
注意:只有當(dāng)前Activity主題為NoActionBar時(shí),才會(huì)顯示Toolbar;
九、CollapsingToolbar
1.作用:實(shí)現(xiàn)Toolbar的折疊效果;
2.使用:
CollapsingToolbar必須放在AppBarLayout中,
而AppBarLayout最好放在協(xié)同布局CoordinatorLayout控件中;
而Toolbar作為CollapsingToolbar的不折疊控件使用;
注意:CollapsingToolbar控件之下必須有且只有兩個(gè)控件;
3.靜態(tài)屬性:
app:title=”標(biāo)題” //設(shè)置標(biāo)題內(nèi)容 app:layout_scrollFlags="scroll|exitUntilCollapsed" //設(shè)置滾動(dòng)標(biāo)記 app:expandedTitleGravity="right|bottom" //設(shè)置標(biāo)題位置 app:expandedTitleMarginBottom="@dimen/activity_vertical_margin" //設(shè)置標(biāo)題到底部的距離 app:expandedTitleMarginEnd="@dimen/activity_horizontal_margin" //設(shè)置標(biāo)題距底部的距離 app:contentScrim="#00ff00" //設(shè)置折疊時(shí)上方控件的顏色 //注意:下邊兩條屬性必須設(shè)置; app:layout_collapseMode="parallax" //在其需要被折疊的子控件中; app:layout_collapseMode="pin": //在需要留下來的子控件中;
4.動(dòng)態(tài)設(shè)置:
//(1)設(shè)置展開狀態(tài)下標(biāo)題顏色 collapsingToolbarLayout.setExpandedTitleColor(Color.WHITE); //(2)設(shè)置折疊后標(biāo)題顏色 collapsingToolbarLayout.setCollapsedTitleTextColor(Color.BLUE);
以上所述是小編給大家介紹的Android5.0中Material Design的新特性,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- 學(xué)習(xí)使用Material Design控件(四)Android實(shí)現(xiàn)標(biāo)題欄自動(dòng)縮放、放大效果
- Material Design系列之Behavior實(shí)現(xiàn)Android知乎首頁
- Android App仿QQ制作Material Design風(fēng)格沉浸式狀態(tài)欄
- 詳解Android Material Design自定義動(dòng)畫的編寫
- 學(xué)習(xí)Android Material Design(RecyclerView代替ListView)
- Android構(gòu)建Material Design應(yīng)用詳解
相關(guān)文章
Android實(shí)現(xiàn)點(diǎn)贊動(dòng)畫(27)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)點(diǎn)贊動(dòng)畫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02學(xué)習(xí)使用Material Design控件(三)使用CardView實(shí)現(xiàn)卡片效果
這篇文章主要為大家介紹了學(xué)習(xí)使用Material Design控件的詳細(xì)教程,如何使用CardView實(shí)現(xiàn)卡片效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07Android開發(fā)實(shí)現(xiàn)刪除聯(lián)系人通話記錄的方法
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)刪除聯(lián)系人通話記錄的方法,較為詳細(xì)的分析了Android刪除通話記錄的原理、步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-10-10Android實(shí)現(xiàn)excel/pdf/word/odt/圖片相互轉(zhuǎn)換
這篇文章主要為大家詳細(xì)介紹了Android如何實(shí)現(xiàn)excel/pdf/word/odt/圖片之間的相互轉(zhuǎn)換,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-04-04Android一個(gè)類實(shí)現(xiàn)錄音與播放實(shí)例
大家好,本篇文章主要講的是Android一個(gè)類實(shí)現(xiàn)錄音與播放實(shí)例,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-02-02Android通過Socket與服務(wù)器之間進(jìn)行通信的示例
這篇文章主要介紹了Android通過Socket與服務(wù)器之間進(jìn)行通信的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-12-12Android?TextView的maxEms和maxLength屬性區(qū)別
這篇文章主要為大家介紹了Android?TextView的maxEms和maxLength屬性區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Android編程之退出整個(gè)應(yīng)用程序的方法
這篇文章主要介紹了Android編程之退出整個(gè)應(yīng)用程序的方法,實(shí)例分析了Android直接關(guān)閉所有的Acitivity并退出應(yīng)用程序的實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-12-12