主题分为两种:

  

   第一种:使用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. js函数——倒计时模块和无缝滚动

    倒计时 效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  2. Apache加载curl_init 失败 php_curl.dll

    Call to undefined function curl_init php.ini curl_init extension=php_curl.dll xampp\php\php.ini 2018 ...

  3. LUA upvalue使用陷阱一例

    CA = {} CA.TestCb = function(self, cb) if not self._cb then self._cb = function() cb() end end self. ...

  4. java使用POI写Excel文件

    参考地址:http://www.cnblogs.com/xwdreamer/archive/2011/07/20/2296975.html 1 jar包 网上下载 2 源代码 package zjr. ...

  5. TreeView绑定

    )             {                 return;             }             foreach (NodeInfo info in list)    ...

  6. 如何提高web页面的性能

    1.浏览器渲染原理解析 想要提高网页的性能,首要的便是要理解浏览器渲染原理,下面关于浏览器的原理解析,我们以chrome内核webkit为例,其他内核的浏览器原理也基本大同小异,可触类旁通. 如上图所 ...

  7. Blending

    [Blending] Blending is used to make transparent objects. When graphics are rendered, after all shade ...

  8. 上传工程到github

    这里主要讲讲如何在mac底下使用github,我刚开始使用时,还是费了一点功夫的,因为网上的资料比较杂,有些不是太准确.故将自己的安装过程比较详细的分享下,方便有需要的人,攒点人品. 首先你得完成如下 ...

  9. Python实现常见算法[3]——汉罗塔递归

    #!/usr/bin/python # define three list var. z1 = [1,2,3,4,5,6,7,"1st zhu"] z2 = ["2st ...

  10. 无法修改SQL Server 服务名称

    之前安装数据库的时候,默认的是机器名A,然后装完后我设置过数据库发布即[复制]里面的[本地发布] 后来我又把机器名改了,但是平时登陆数据库都是用ip登陆的 今天我要设置一个新的发布,但是发现只能用实例 ...