Material3 ColorScheme参数详解

这些参数是定义在一个主题系统中的颜色变量,通常用于设计应用的颜色体系。每个参数代表了一种特定用途的颜色,在应用中可以用来保持一致的视觉风格。以下是每个参数的解析和作用:

  1. primary: 主要颜色,用于应用的主要界面元素。

    • primary: Color = ColorLightTokens.Primary
  2. onPrimary: 主要颜色上的文本或图标颜色,确保对比度足够高以便可读。

    • onPrimary: Color = ColorLightTokens.OnPrimary
  3. primaryContainer: 主要颜色的容器颜色,通常用于按钮或卡片的背景色。

    • primaryContainer: Color = ColorLightTokens.PrimaryContainer
  4. onPrimaryContainer: 主要颜色容器上的文本或图标颜色。

    • onPrimaryContainer: Color = ColorLightTokens.OnPrimaryContainer
  5. inversePrimary: 主要颜色的反转版,通常用于深色模式下的主要颜色。

    • inversePrimary: Color = ColorLightTokens.InversePrimary
  6. secondary: 次要颜色,用于次要界面元素。

    • secondary: Color = ColorLightTokens.Secondary
  7. onSecondary: 次要颜色上的文本或图标颜色。

    • onSecondary: Color = ColorLightTokens.OnSecondary
  8. secondaryContainer: 次要颜色的容器颜色。

    • secondaryContainer: Color = ColorLightTokens.SecondaryContainer
  9. onSecondaryContainer: 次要颜色容器上的文本或图标颜色。

    • onSecondaryContainer: Color = ColorLightTokens.OnSecondaryContainer
  10. tertiary: 第三级颜色,用于辅助界面元素。

    • tertiary: Color = ColorLightTokens.Tertiary
  11. onTertiary: 第三级颜色上的文本或图标颜色。

    • onTertiary: Color = ColorLightTokens.OnTertiary
  12. tertiaryContainer: 第三级颜色的容器颜色。

    • tertiaryContainer: Color = ColorLightTokens.TertiaryContainer
  13. onTertiaryContainer: 第三级颜色容器上的文本或图标颜色。

    • onTertiaryContainer: Color = ColorLightTokens.OnTertiaryContainer
  14. background: 应用的背景颜色。

    • background: Color = ColorLightTokens.Background
  15. onBackground: 背景上的文本或图标颜色。

    • onBackground: Color = ColorLightTokens.OnBackground
  16. surface: 表面的颜色,用于卡片、对话框等的背景色。

    • surface: Color = ColorLightTokens.Surface
  17. onSurface: 表面上的文本或图标颜色。

    • onSurface: Color = ColorLightTokens.OnSurface
  18. surfaceVariant: 表面的变体颜色。

    • surfaceVariant: Color = ColorLightTokens.SurfaceVariant
  19. onSurfaceVariant: 表面变体上的文本或图标颜色。

    • onSurfaceVariant: Color = ColorLightTokens.OnSurfaceVariant
  20. surfaceTint: 用于给表面涂色的颜色,通常与主要颜色一致。

    • surfaceTint: Color = primary
  21. inverseSurface: 表面的反转版颜色,通常用于深色模式下的表面颜色。

    • inverseSurface: Color = ColorLightTokens.InverseSurface
  22. inverseOnSurface: 反转表面上的文本或图标颜色。

    • inverseOnSurface: Color = ColorLightTokens.InverseOnSurface
  23. error: 错误状态下使用的颜色。

    • error: Color = ColorLightTokens.Error
  24. onError: 错误状态下的文本或图标颜色。

    • onError: Color = ColorLightTokens.OnError
  25. errorContainer: 错误状态的容器颜色。

    • errorContainer: Color = ColorLightTokens.ErrorContainer
  26. onErrorContainer: 错误状态容器上的文本或图标颜色。

    • onErrorContainer: Color = ColorLightTokens.OnErrorContainer
  27. outline: 用于边框或分隔线的颜色。

    • outline: Color = ColorLightTokens.Outline
  28. outlineVariant: 边框或分隔线的变体颜色。

    • outlineVariant: Color = ColorLightTokens.OutlineVariant
  29. scrim: 用于遮罩的颜色,通常用于模态对话框后面的背景。

    • scrim: Color = ColorLightTokens.Scrim
  30. surfaceBright: 明亮的表面颜色。

    • surfaceBright: Color = ColorLightTokens.SurfaceBright
  31. surfaceContainer: 容器的表面颜色。

    • surfaceContainer: Color = ColorLightTokens.SurfaceContainer
  32. surfaceContainerHigh: 高亮的容器表面颜色。

    • surfaceContainerHigh: Color = ColorLightTokens.SurfaceContainerHigh
  33. surfaceContainerHighest: 最高亮的容器表面颜色。

    • surfaceContainerHighest: Color = ColorLightTokens.SurfaceContainerHighest
  34. surfaceContainerLow: 低亮的容器表面颜色。

    • surfaceContainerLow: Color = ColorLightTokens.SurfaceContainerLow
  35. surfaceContainerLowest: 最低亮的容器表面颜色。

    • surfaceContainerLowest: Color = ColorLightTokens.SurfaceContainerLowest
  36. surfaceDim: 昏暗的表面颜色。

    • surfaceDim: Color = ColorLightTokens.SurfaceDim

这些颜色变量通常是从某个颜色系统(如 ColorLightTokens)中提取的,并用于定义应用的主题,以确保在不同状态和界面元素上使用一致的颜色。

在Android中,`RemoteViews` 是一个用于构建 `Notification` 的轻量级视图容器,它允许你在通知中动态地设置内容。如果你想要使用Material Design 3(Material 3)的颜色并且保持透明度,通常会涉及到以下步骤: 1. Material 3颜色资源:首先,你需要获取Material 3主题中的颜色ID,比如 `colorPrimary`, `colorOnPrimary`, 等等。这些颜色可以在`styles.xml`文件中通过 `<style>` 标签内的 `?attr/colorScheme` 来引用。 2. 设置背景:在创建 `RemoteViews` 对象时,你可以使用 `setBackgroundColor()` 方法,并传入对应的Material 3颜色ID。例如: ```java RemoteViews notificationView = new RemoteViews(getPackageName(), R.layout.notification_view); int backgroundColor = ContextCompat.getColor(this, R.color.material3_colorPrimary); notificationView.setBackgroundColor(backgroundColor); ``` 3. 透明度处理:对于透明度,`RemoteViews`本身并不直接支持设置Alpha值。但是,你可以在布局XML文件中添加半透明背景(比如 `android:background="@android:color/transparent"`),然后在通知显示时使用第三方库如`CircleTransform` 或者自定义动画来实现透明渐变效果。 4. 动画过渡:为了实现平滑的透明度变化,你可以结合使用 `PendingIntent` 和 `NotificationChannel` 的 `setLightSettings()` 方法,以及Notification Builder的 `setSmallIcon(int iconId, Bitmap largeIcon)` 和 `setContentDescription(String description)` 来展示带有淡入淡出效果的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值