網(wǎng)站首頁 編程語言 正文
正文
Material Design(原材料設(shè)計(jì)),簡(jiǎn)稱MD。Android對(duì)MD的支持始于Android5.0,也就是API21,我們一般做應(yīng)用適配也是到API21,所以,適配的最舊的手機(jī)也是帶Material Design的。這里我不得不給Google的良苦用心點(diǎn)個(gè)贊,自從Google向Apple手機(jī)美麗的UI系統(tǒng)發(fā)起挑戰(zhàn),推出MD以來,那黑不溜秋且無法修改的狀態(tài)欄就退出歷史舞臺(tái)了。
MD設(shè)計(jì)理念
體現(xiàn)更多的物理事件的特征,比如邊緣的投影、層級(jí)清晰。顏色更加鮮艷,動(dòng)畫效果更加突出,更有代入感,一下子精氣神都來了。最主要的是Google想統(tǒng)一Android UI的風(fēng)格,我們配合一下,哈哈哈。
為什么推薦使用MD
在公司的項(xiàng)目開發(fā)過程中,能用系統(tǒng)的控件就盡量使用系統(tǒng)的,因?yàn)橄到y(tǒng)控件具有更佳的性能和穩(wěn)定性優(yōu)勢(shì),且被廣泛開發(fā)者所使用,有利于別人接手項(xiàng)目的開發(fā)。MD的控件由于是官方推出的,所以也作為系統(tǒng)控件的擴(kuò)展控件來使用。
使用MD主題
1.依賴庫
implementation 'com.google.android.material:material:1.7.0'
2.定義一個(gè)應(yīng)用主題繼承自MD的主題
<style name="Theme.MyApplication" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
</style>
MD主題顏色的名稱
常用MD控件使用
Snackbar
// 常駐底部的提示信息
Snackbar.make(view, "青春常駐", Snackbar.LENGTH_INDEFINITE).show()
// 短時(shí)間消失的提示信息
Snackbar.make(view, "短暫而精彩", Snackbar.LENGTH_SHORT).show()
// 長(zhǎng)一點(diǎn)時(shí)間消失的提示信息
Snackbar.make(view, "長(zhǎng)命百歲", Snackbar.LENGTH_LONG).show()
CardView
<androidx.cardview.widget.CardView android:layout_width="100dp" android:layout_height="60dp" android:layout_centerInParent="true" android:padding="10dp" app:cardBackgroundColor="@color/cardview_shadow_end_color" app:cardCornerRadius="4dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="卡片中的文字"/> </androidx.cardview.widget.CardView>
當(dāng)然,使用elevation屬性
android:elevation="10dp"
也可以實(shí)現(xiàn)類似陰影效果。
BottomSheetDialog
val textView = TextView(this)
textView.layoutParams =
RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 1000)
textView.gravity = Gravity.CENTER
textView.text = "BottomSheet Text"
val dialog = BottomSheetDialog(this)
dialog.setContentView(textView)
dialog.show()
對(duì)美好的UI設(shè)計(jì)的無止境的追求
愛美之心人皆有之,我們?cè)跇I(yè)余時(shí)間,可以多關(guān)注官方的最新動(dòng)態(tài),看看官方出的最新的關(guān)于UI方面的相關(guān)類,一起來跟上時(shí)代潮流吧。
原文鏈接:https://juejin.cn/post/7195279875349954597
相關(guān)推薦
- 2022-11-22 Golang?Compare?And?Swap算法詳細(xì)介紹_Golang
- 2022-04-28 WPF簡(jiǎn)介與基礎(chǔ)開發(fā)_實(shí)用技巧
- 2022-01-22 redis——緩存穿透、緩存擊穿、緩存雪崩、分布式鎖
- 2022-08-15 棧(Stack)和隊(duì)列(Queue)的基本操作
- 2022-10-12 Xshell7遠(yuǎn)程連接失敗(connection?failed)的問題解決_Linux
- 2024-03-09 【Redis】什么是緩存擊穿,如何預(yù)防緩存擊穿?
- 2022-06-24 python函數(shù)常見關(guān)鍵字分享_python
- 2022-10-05 Android?Flutter實(shí)現(xiàn)原理淺析_Android
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支