Android 中的 theme 和 style(3)

作者 : 开心源码 本文共1261个字,预计阅读时间需要4分钟 发布时间: 2022-05-12 共152人阅读

Themes

通常定义 Activity 的长什么样

  • Theme.Material
  • Theme.Material.Dialog
  • Theme.Material.Light.DarkActionBar
    主题通常是固定以 Theme 点什么这样形式开头,

Overlay themes

  • ThemeOvery.Material.Light
  • ThemeOvery.Material.Dark
  • ThemeOvery.Material.Dialog

主题颜色

  • colorForeground
  • colorForegroundInverse
  • colorBackground
  • colorBackgroundFloating

通常我们会有前景色和背景色,根据是浅色主题还是深色主题,他们前景色和背景色可能是黑白组合或者白黑组合。通常我们不会用简单黑白来分别表示深浅色。

这里我们以 switch 组件为例,switch 组件中包含了多种颜色,我们可以定义 switch 前景色和背景色,其实这些颜色都基本上都是根据黑白的变化而得来的。

<selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:state_enabled="false"        android:color="?attr/colorForeground"        android:alpha="?attr/disabledAlpha"/>    <item android:state_checked="true"        android:color="?attr/colorControlActivated"/></selector>

这里定义 switch 不同状态下颜色搭配。在禁用情况根据前景色降低透明度来表示禁用。

  • textColorPrimary
  • textColorPrimaryInverse
  • textColorSecondary
  • textColorSecondaryInverse

在textColor 文本颜色中,primary 也就是主色用于让客户一目了然,清晰可见可以引起客户注意的文字上。所以就要求文字颜色显眼。Secondary 文字颜色会根据 material 中的规范计算得来,通常是 primary 的 84% 或者 56% 的透明度。

  • <font color=#ff4081>colorAccent</font>
  • colorPrimary
  • colorPrimaryDark
    colorControlNormal(默认为 textColorSecondary)
    colorControlActivated(默认为 colorAccent)
    colorAcent 通常用于组件选中的情况,比照强烈,假如深色主题可以考虑用浅色的 colorAccent,colorControlNormal 为默认的组件的颜色,而后组件有 icon 强烈推荐将 icon 设置 colorControlNormal,为了保持 icon 在不同组件中一致性,所以推荐使用 colorControlNormal 设置 icon (图标)的颜色。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Android 中的 theme 和 style(3)

发表回复