Android开发主题样式详解

作者: 布吉岛原住民 | 来源:发表于2017-09-23 17:59 被阅读90次
    app如何设置主题
    1. 在res/values/styles.xml文件中添加代码:
    <resources>
        <style name="AppBaseTheme" parent="android:Theme"></style>
        <style name="AppTheme" parent="AppBaseTheme"></style>
    </resources>
    
    1. 在res/values-v11/styles.xml和res/values-v14/styles.xml文件中添加代码:
    <resources>
        <style name="AppTheme" parent="AppBaseTheme"></style>
    </resources>
    
    1. 在AndroidManifest.xml设置<application android:theme="@style/AppTheme">

    application标签中的@style/AppTheme引用自哪个文件夹中的styles.xml,这是根据运行此程序的手机系统来决定的,如果手机系统的API版本是11以上就是v11/styles.xml,API版本是14以上就是v14/styles.xml,以此类推。我们可以通过修改AppBaseTheme的父主题来实现我们需要的样式,此文章主要就是来讨论这个主题如何修改。

    主题的来源
    • Android系统自带的
    • 来自兼容包的(比如v7兼容包)
    • 自定义的主题

    使用android系统中自带的主题要加上"android:",如:android:Theme.Black
    使用v7兼容包中的主题不需要前缀,如:Theme.AppCompat

    主题的样式

    系统自带主题:
    API 1:
    android:Theme 根主题
    android:Theme.Black 背景黑色
    android:Theme.Light 背景白色
    android:Theme.Wallpaper 以桌面墙纸为背景
    android:Theme.Translucent 透明背景
    android:Theme.Panel 平板风格
    android:Theme.Dialog 对话框风格

    API 11:
    android:Theme.Holo Holo根主题
    android:Theme.Holo.Black Holo黑主题
    android:Theme.Holo.Light Holo白主题

    API 14:
    android:Theme.DeviceDefault 设备默认根主题
    android:Theme.DeviceDefault.Black 设备默认黑主题
    android:Theme.DeviceDefault.Light 设备默认白主题

    API 21: (网上常说的 Android Material Design 就是要用这种主题)
    android:Theme.Material Material根主题
    android:Theme.Material.Light Material白主题

    兼容包v7中带的主题:
    Theme.AppCompat 兼容主题的根主题
    Theme.AppCompat.Black 兼容主题的黑色主题
    Theme.AppCompat.Light 兼容主题的白色主题

    注意:
    1. Theme.AppCompat主题是兼容主题的意思是说如果运行程序的手机API是21则就相当于是Material主题,如果运行程序的手机API是11则就相当于是Holo主题,以此类推。

    2. 兼容包v7会被Google公司不断升级:
      比如 appcompat-v7-21.0 表示升级到向 API 21 兼容
      比如 appcompat-v7-23.2 表示升级到向 API 23 兼容

    3. 所有能应用于应用程序主题都是以“Theme.”开头
      不是以“Theme.”开头的就不是应用程序主题,而是用于某些局部控件
      比如“ThemeOverlay”主题,可用于 Toolbar 控件。
      比如“TextAppearance”主题,可用于设置文字外观。
      比如在v7中有很多以“Base”开头的主题,是一些父主题,不建议直接使用。

    报错原因:
    • 需要提升最低API版本
    • 需要更高版本的SDK
    • 兼容包版本不对
    • 需要手动指定宽高
    • 继承错误
      比如窗体必须继承AppCompactActivity,或者要继承ActionBarActiivty,或者要继承FragmentActivity
    更多主题:

    以下都是指“包含”,比如包含“Dialog”表示对话框风格
    比如Theme.Dialog、Theme.Holo.Dialog、Theme.Material.Dialog、Theme.AppCompat.Dialog都是对话框风格

    Black 黑色风格
    Light 光明风格
    Dark 黑暗风格
    DayNight 白昼风格
    Wallpaper 墙纸为背景
    Translucent 透明背景
    Panel 平板风格
    Dialog 对话框风格
    NoTitleBar 没有TitleBar
    NoActionBar 没有ActionBar
    Fullscreen 全屏风格
    MinWidth 对话框或者ActionBar的宽度根据内容变化,而不是充满全屏
    WhenLarge 对话框充满全屏
    TranslucentDecor 半透明风格
    NoDisplay 不显示,也就是隐藏了
    WithActionBar 在旧版主题上显示ActionBar

    相关文章

      网友评论

        本文标题:Android开发主题样式详解

        本文链接:https://www.haomeiwen.com/subject/mxicextx.html