主题分为两种:
第一种:使用Android系统提供的主题
第二种:自己定义主题
样式 与 主题 区分理解
样式是控制(View的子类风格)控件风格 或者 是(ViewGroup的子类风格)布局风格
主题是控制整体风格(例如:Application Activity 等)
Android系统提供的主题:
Activity使用Android系统提供的主题:
Application 默认就使用来一个主题:android:theme="@style/AppTheme"
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme">
Activity 使用系统的主题:
<!-- 对话框主题 android:theme="@android:style/Theme.DeviceDefault.Dialog"> android:theme="@android:style/Theme.Holo.Dialog" android:theme="@android:style/Theme.Dialog" android:theme="@style/Theme.AppCompat.Dialog" android:theme="@style/Theme.AppCompat.DayNight.Dialog" android:theme="@style/Base.Theme.AppCompat.Dialog.FixedSize" ... 没有标题+全屏 android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" 没有标题 android:theme="@android:style/Theme.Black.NoTitleBar" -->
<activity android:name=".ThemeActivity" android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
使用Android系统主题的效果:
自定义主题:
自己去定义主题,首先要找到系统提供的主题文件
android-16 android-22 android-xxx 平台版本无所谓,都可以的
找到themes.xml文件打开阅读
找到themes.xml文件打开阅读,要明白Android的这些窗体都是Window,所以直接找Window字样
在values文件夹新建,themes.xml 主题文件:
在themes.xml中定义主题,注意:自定义主题需要增加 android:才行,刚刚阅读系统主题是没有加android: 。
<?xml version="1.0" encoding="utf-8"?> <resources> <!-- 无标题主题 --> <style name="My_Theme_Not_Title"> <item name="android:windowNoTitle">true</item> </style> <!-- 全屏主题(无状态栏 + 继承了parent="My_Theme_Not_Title" 无标题) --> <style name="My_Theme_Not_Title_Fullscreen" parent="My_Theme_Not_Title"> <item name="android:windowFullscreen">true</item> </style> </resources>
使用自定义主题:
自定义主题:
android:theme="@style/My_Theme_Not_Title_Fullscreen"
android:theme="@style/My_Theme_Not_Title"
<activity android:name=".ThemeActivity" android:theme="@style/My_Theme_Not_Title"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
自定义主题都效果: