安卓22:Android studio主题样式(theme文件)的设置

app如何设置主题
 在styles.xml或theme.xml文件中添加代码:

<resources>

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

</resources>

在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
  
ActionBar就是方便用于导航和操作的一个类,苹果是底部导航的风格,那安卓是顶部的风格。涉及到actionbar格式的修改需要到mainfest文件中修改theme属性,只是在theme文件中修改,不会改变actionbar的格式
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43374694/article/details/113609910