Android之主题样式开发详解

本文和大家分享的主要是android开发主题样式相关内容,一起来看看吧,希望对大家学习和使用这部分内容有所帮助。

  app如何设置主题

  1. 在res/values/styles.xml文件中添加代码

<resources>

    <style name="AppBaseTheme" parent="android:Theme"></style>

    <style name="AppTheme" parent="AppBaseTheme"></style>

</resources>

  2. 在res/values-v11/styles.xml和res/values-v14/styles.xml文件中添加代码

<resources>

    <style name="AppTheme" parent="AppBaseTheme"></style>

</resources>

  1. 在AndroidManifest.xml设置

  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

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值