主题分为两种:

  

   第一种:使用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>

自定义主题都效果:

Android-主题的更多相关文章

  1. Android学习系列(40)--Android主题和样式之系统篇(下)

    11)Widget样式(Widget Style) 特别说明,此处定义大量的系统内置控件的样式,对于重写原生控件的样式具有很大的参考价值. <!-- Widget styles --> & ...

  2. Android主题换肤实现

    本系列文章主要是对一个Material Design的APP的深度解析,主要包括以下内容 基于Material Design Support Library作为项目整体框架.对应博文:Android ...

  3. Android主题更换换肤

    知识总览android主题换肤通常借助LayoutInflater#setFactory实现换肤. 换肤步骤: 通过解析外部的apk压缩文件,创建自定义的Resource对象去访问apk压缩文件的资源 ...

  4. Android学习系列(39)--Android主题和样式之系统篇(上)

    [基于最新的Android4.4的源码分析] 每家公司或者每个移动团队无不想开发出一套自己的UI框架,融入自己的设计和特性,这必然会去修改android的ui.所以,学习和理解android的UI设计 ...

  5. Android 主题和选择器

    今天在做底部tab的时候因为样式都一样 所以就自定义一个style 这样省的写很多重复的样式(懒懒懒懒), 修改的话直接在样式里修改省去一个一个修改一样的代码 1 在values/styles.xml ...

  6. Android主题theme和风格style总结

    用到了Android的主题和风格,感觉很多地方需要总结和记录下来.其实主题和风格是有很大的作用的,特别是界面要求比较高的客户端. Style:是一个包含一种或者多种格式化属性的集合,我们可以将其用为一 ...

  7. Android 主题动态切换框架:Prism

    Prism(棱镜) 是一个全新的 Android 动态主题切换框架,虽然是头一次发布,但它所具备的基础功能已经足够强大了!本文介绍了 Prism 的各种用法,希望对你会有所帮助,你也可以对它进行扩展, ...

  8. Android主题切换方案总结

    所谓的主题切换,就是能够根据不同的设定,呈现不同风格的界面给用户,也就是所谓的换肤. 1.将主题包(图片与配置)存到SD卡上(可通过下载或手动放入指定目录),在代码里强制从本地文件创建图片与配置文字大 ...

  9. Android主题换肤 无缝切换

    2016年7月6日 更新:主题换肤库子项目地址:ThemeSkinning,让app集成换肤更加容易.欢迎star以及使用,提供改进意见. 更新日志: v1.3.0:增加一键切换切换字体(初版)v1. ...

  10. Android:主题(Theme)

    1.主题和样式的区别主要区别在 主题不能作用于单个View组建,主题应该对整个应用中的所有Activity起作用或者对指定的Activity起作用. 主题定义的格式应该是改变窗口的外观格式,例如窗口变 ...

随机推荐

  1. C++何时使用引用

  2. C链表

    结构指针的应用,链表处理 1,链表的概念 链表是将若干数据项按一定规则连接起来的[数据类型]表,链表中的每一个数据称为一个节点,既链表是由称为节点的元素组成的,节点多少根据需要确定. 链表连接规则: ...

  3. subprocess in python3.5

    subprocess 该子模块允许你创建新的流程,连接到它们的输入/输出/错误管道,并获取他们的返回值.该模块打算替换多个旧的模块和功能:os.system   和  os.spawn * 使用sub ...

  4. <转> win7下破解已安装的VS2008

    http://renfan.blog.51cto.com/3466724/754301 在win7系统下,已安装的VS2008维护界面是不显示序列号输入的,需要按以下步骤进行才能破解 1.点击“卸载/ ...

  5. 在struts2.3.4.1中使用注解、反射、拦截器实现基于方法的权限控制

    权限控制是每一个系统都应该有的一个功能,有些只需要简单控制一下就可以了,然而有些却需要进行更加深入和细致的权限控制,尤其是对于一些MIS类系统,基于方法的权限控制就更加重要了. 用反射和自定义注解来实 ...

  6. 封装baseservice

    package com.huawei.base; import java.io.Serializable;import java.util.List; public abstract class Ba ...

  7. spring boot aop打印http请求回复日志包含请求体

    一.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  8. 查看MSSQL数据库每个表占用的空间大小

    需要查看数据库表的大小,查询SQL Server联机从书得到如下语句: sp_spaceused 显示行数.保留的磁盘空间以及当前数据库中的表所使用的磁盘空间,或显示由整个数据库保留和使用的磁盘空间. ...

  9. 实现把C语言编译成java字节码的编译器 一个将C语言编译成java字节码的实例

  10. 7-set用法详解

    C++中set用法详解 转载 http://blog.csdn.net/yas12345678/article/details/52601454 C++ / set 更详细见:http://www.c ...