成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

玩轉(zhuǎn)Jetpack Compose主題:讓你的APP變身時(shí)尚達(dá)人

開發(fā) 前端
主題系統(tǒng)是構(gòu)建統(tǒng)一視覺語言的基礎(chǔ)設(shè)施,建議從項(xiàng)目初期就建立規(guī)范。可以先從基礎(chǔ)配色開始,逐步完善文字和形狀系統(tǒng),最終形成完整的設(shè)計(jì)體系。

主題的魔法衣櫥

什么是主題?

主題就像APP的穿搭指南,包含:

? ?? 顏色搭配(Color Palette)

? ?? 字體排版(Typography)

? ?? 形狀設(shè)計(jì)(Shapes)

Android Studio貼心地為你準(zhǔn)備了主題三件套:

圖片圖片

主題變身咒語

看這段自動生成的代碼,像不像哈利波特的魔法咒語?

@Composable
fun SampleAndroidTheme(
    darkTheme: Boolean = isSystemInDarkTheme(),
    // Dynamic color is available on Android 12+
    dynamicColor: Boolean = true,
    content: @Composable () -> Unit
) {
    // ?? 主題模式切換器
    val colorScheme = when {
        dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
            val context = LocalContext.current
            if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
        }

        darkTheme -> DarkColorScheme
        else -> LightColorScheme
    }

    MaterialTheme(
        colorScheme = colorScheme,// 顏色搭配
        typography = Typography,// 字體庫
        shapes = MaterialTheme.shapes,//形狀大全
        content = content
    )
}

調(diào)色大師速成班

官方配色方案

Material Design貼心地準(zhǔn)備了顏色全家桶

// ?? 基礎(chǔ)色套餐
private val LightColorScheme = lightColorScheme(
    primary = Purple40,
    secondary = PurpleGrey40,
    tertiary = Pink40

    /* Other default colors to override
    background = Color(0xFFFFFBFE),
    surface = Color(0xFFFFFBFE),
    onPrimary = Color.White,
    onSecondary = Color.White,
    onTertiary = Color.White,
    onBackground = Color(0xFF1C1B1F),
    onSurface = Color(0xFF1C1B1F),
    */
)

圖片圖片

DIY專屬配色

想加點(diǎn)特別顏色?試試自定義色卡

// ?? 彩虹獨(dú)角獸配色
val RainbowColors = lightColorScheme(
    primary = Color(0xFFFF6B6B),      // 珊瑚粉
    secondary = Color(0xFF4ECDC4),    // 薄荷綠
    background = Color(0xFFFFF5E1)    // 香草奶油
)

// ?? 使用方式
MaterialTheme(
    colorScheme = RainbowColors,
    typography = Typography,
    shapes = MaterialTheme.shapes,
    content = content
)

圖片圖片

文字排版變變變

官方字體套餐

Compose自帶專業(yè)排版配置

val Typography = Typography(
    h1 = TextStyle(           // 超大標(biāo)題
        fontFamily = FontFamily.SansSerif,
        fontWeight = FontWeight.Bold,
        fontSize = 24.sp
    ),
    body1 = TextStyle(         // 正文
        fontFamily = FontFamily.Default,
        fontSize = 16.sp
    ),
    button = TextStyle(        // 按鈕文字
        fontWeight = FontWeight.W500,
        fontSize = 14.sp
    )
)

自定義字體秘籍

想用特殊字體?三步搞定:

1. 把字體文件(.ttf)放在 res/font 文件夾

2. 創(chuàng)建字體對象:

val ComicFont = FontFamily(
    Font(R.font.comic_neue_regular),
    Font(R.font.comic_neue_bold, weight = FontWeight.Bold)
)

3. 使用自定義字體:

Text(
    text = "我是萌萌噠阿里媽媽豎黑體字體",
    style = TextStyle(fontFamily = ComicFont)
)

圖片圖片

形狀改造計(jì)劃

官方形狀大全

Compose提供三種預(yù)設(shè)形狀:

Shapes(
    small = RoundedCornerShape(4.dp),   // 小圓角(藥丸形狀)
    medium = RoundedCornerShape(8.dp),  // 中圓角(卡片邊角)
    large = RoundedCornerShape(0.dp)    // 直角(復(fù)古風(fēng)格)
)

腦洞形狀實(shí)驗(yàn)室

試試這些炫酷形狀:

// ?? 蘑菇按鈕
Button(
    onClick = { },
    modifier = Modifier.size(100.dp),
    shape = CircleShape,
    colors = ButtonDefaults.buttonColors(containerColor = Color.Red)
) {
    Column(
        horizontalAlignment = Alignment.CenterHorizontally,
        verticalArrangement = Arrangement.Center
    ) {
        Box(
            modifier = Modifier
                .size(60.dp, 30.dp)
                .background(
                    color = Color.White,
                    shape = RoundedCornerShape(50)
                )
        )
        Spacer(modifier = Modifier.height(4.dp))
        Text("采蘑菇", color = Color.White)
    }
}

// ?? 六邊形頭像
Image(
    painter = painterResource(R.drawable.img),
    contentDescription = null,
    modifier = Modifier.clip(PolygonShape(sides = 6)) // 六邊形裁剪
)

圖片圖片

主題系統(tǒng)核心要點(diǎn)總結(jié)

主題三板斧

1. 顏色體系

? 使用MaterialTheme.colors統(tǒng)一管理配色方案

? 支持亮/暗模式自動切換

? 通過擴(kuò)展屬性添加自定義顏色

2. 文字排版

? 預(yù)定義h1-h6等標(biāo)題樣式

? 通過Typography類管理字體規(guī)范

? 支持加載自定義字體文件

3. 形狀系統(tǒng)

? 提供small/medium/large三級圓角配置

? 支持創(chuàng)建異形組件(圓角/切角/多邊形等)

? 通過Modifier.clip()實(shí)現(xiàn)形狀裁剪

最佳實(shí)踐建議

1. 命名規(guī)范

// 好的命名示例
val Colors.success = Color.Green
val Typography.cardTitle = TextStyle(...)
val Shapes.chatBubble = RoundedCornerShape(8.dp)

2. 主題繼承

// 創(chuàng)建子主題
@Composable
fun DashboardTheme(content: @Composable () -> Unit) {
    MaterialTheme(
        colors = MaterialTheme.colors.copy(primary = Blue200),
        content = content
    )
}

3. 響應(yīng)式適配

// 根據(jù)屏幕尺寸調(diào)整字體
val typography = Typography(
    h1 = TextStyle(fontSize = if (isMobile) 24.sp else 32.sp)
)

主題系統(tǒng)是構(gòu)建統(tǒng)一視覺語言的基礎(chǔ)設(shè)施,建議從項(xiàng)目初期就建立規(guī)范。可以先從基礎(chǔ)配色開始,逐步完善文字和形狀系統(tǒng),最終形成完整的設(shè)計(jì)體系。

源碼https://github.com/Reathin/Sample-Android/tree/master/module_compose_theme

責(zé)任編輯:武曉燕 來源: 沐雨花飛碟
相關(guān)推薦

2025-05-28 01:20:00

JetpackCompose元素

2014-12-23 10:16:22

iPadmac

2023-08-25 08:06:04

項(xiàng)目布局LazyRow?

2012-08-31 14:48:23

天天記事華為

2025-05-26 08:24:45

2024-03-06 08:25:31

Compose開發(fā)界面

2011-08-25 00:04:23

筆記本評測

2012-05-18 09:23:33

Linux

2013-07-12 13:24:19

App誘惑

2015-01-16 16:39:51

2013-04-16 16:01:51

APP支持iPhoneiOS開發(fā)

2013-07-05 13:48:47

App

2011-07-14 14:03:33

360安全瀏覽器

2018-04-26 14:10:08

裝機(jī)AMDCPU

2013-09-18 15:56:18

Testin王軍App

2013-07-30 15:24:53

App應(yīng)用體驗(yàn)

2022-10-08 08:51:21

KDE PlasmaLinux 桌面Linux

2013-02-01 17:36:35

App開發(fā)者用戶體驗(yàn)

2013-11-25 11:25:05

產(chǎn)品設(shè)計(jì)App設(shè)計(jì)產(chǎn)品經(jīng)理
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 男女下面一进一出网站 | 国产精品一区二区在线观看 | 精品无码久久久久国产 | 日本一道本视频 | 九九久久精品视频 | 精品欧美一区二区精品久久久 | 久久综合888| 黄色在线免费观看 | 69av在线视频 | 性高朝久久久久久久3小时 av一区二区三区四区 | 99成人在线视频 | 久久久久99 | 蜜桃视频一区二区三区 | 国产精品黄色 | 午夜影院视频在线观看 | 91免费小视频 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 国产成人精品综合 | 颜色网站在线观看 | 国产精品成人国产乱一区 | 久久综合狠狠综合久久 | 午夜精品影院 | 免费观看毛片 | 五月天国产视频 | 精品一区二区三区四区外站 | 国产色视频网站 | 日本久久综合 | 国产特级毛片aaaaaa | 欧美黑人国产人伦爽爽爽 | 中文字幕在线观看日韩 | 精品久久香蕉国产线看观看亚洲 | 欧美a区 | 四虎影视1304t| 亚洲一区久久 | 一区二区三区在线观看视频 | 欧美激情视频一区二区三区在线播放 | 久草.com| 一a级片 | 国产午夜在线 | 精品国产不卡一区二区三区 | 亚洲播放一区 |