android主题机制(一)

混合示教长短时记忆网络的车辆轨迹预测研究 论文"混合示教长短时记忆网络的车辆轨迹预测研究"中数据处理及MTF-LSTM模型实现代码,模型在Pytorch框架下实现。 阅读详情

android的主题是一块很大的内容,从本文开始,将分几个阶段陆续将工作中遇到的一些相关经验、内容呈现给大家。

第一部分,我们来聊一下android默认的主题使用情况。

android的主题主要有Theme、Theme.light、Theme.Holo、Theme.Holo.Light,  以及由他们派生出来的各项细类,这里的"."就是一种很清晰的继承关系。

比如Theme.Holo.Dialog 就是在继承Theme.Holo的情况下,专门对Dialog的适配做出相关属性的修改。

android主题的声明,一般会放在manifest中,如果不声明,应用将会调用系统默认的主题,本文讨论的即是在各种不同版本的情况下,默认主题是什么。

在frameworks/base/core/java/android/content/res/Resources.java下,有该代码片段,如图

其中两个version分别代表的是API 11  3.0 和API14 4.0。


这段代码告诉我们即manifes未申明任何theme,3.0之前的版本用Theme,4.0之前的版本(3.0之后)用Theme.Holo,4.0之后的通通用Theme.DeviceDefault。

Theme.DeviceDefault是个什么东东?

在frameworks/base/core/res/res/values/themes_device_defaults.xml的开头,有这么一段注释,如图



简言之,在4.0之后,android开放了Theme.DeviceDefault接口,它完全继承了theme.holo,又留出了很多接口供开发者个性化修改自己的主题,如图,


你可以修改相关的字体颜色、风格、按钮、选择开关等样式,在ROM级上做出全局的主题适配。任何一个未做应用主题声明的应用,包括第三方的,安装在该ROM中,都可以被完全的主题化,而又完全不会干扰到android原生的Theme.Holo等标准主题。给丰富多彩、个性定制的ROM开发留下了方便现成的接口空间。(尽管miui的主题并未用此,但并不能否定android这么做确实体现了一个开放的系统博大胸怀)


关于theme中常用的属性、style标签等,请参考这篇关于主题的好文http://www.cnblogs.com/qianxudetianxia/p/3725466.html

结合qtdesigner,用pyqtgraph在界面上绘制波形图(一) 思路:先画图,然后在qtdesigner上放一个容器,给这个容器添加一个布局,然后把图当作一个Widget放入布局中。二、PyUIC把test.ui转换成test.py,再新建一个load_test.py写脚本。就这么简单,基础部分就完成了。也可以给它添加样式,我知道的样式不算多,但会继续写。一、随便拖进来一个容器控件,我拖了一个Widget。要想把波形图显示在界面上,核心思想其实很简单。三、load_test.py的代码。 阅读详情

相关推荐

Astah 9.0升级步骤(Widnows/Mac OS)

Astah Professional是一款全新的轻量级UML建模工具。软件集思维导图和UML建模于一体,采用100%纯JAVA构建, 兼容性强,不仅能够实现分布式建模、项目合并,还能够实现和其它建模工具的交互。

tequiero777的博客 2824

Theme.Holo.Light详解

Theme.Holo.Light详解

zhangdejun1221的博客 2311

来自工业界的知识库 RAG 服务(二),RagFlow 源码全流程深度解析

前面介绍过有道 QAnything 源码解析,通过深入了解工业界的知识库 RAG 服务,得到了不少调优 RAG 服务的新想法。因此本次趁热打铁,额外花费一点时间,深入研究了另一个火热的开源 RAG 服务RagFlow的完整实现流程,希望同样有所收获。首先依旧可以先从框架图入手,与常规的 RAG 架构进行一些比较可以看到右侧知识库被明显放大,同时最右侧详细介绍了文件解析的各种手段,比如OCR等,这些在常规的 RAG 中可能会作为一个不起眼的。

易迟的专栏 2万+

Android系统自带主题样式(android:theme),Android Dialog 系统样式

转载:http://stephen830.iteye.com/blog/1129203      http://blog.sina.com.cn/s/blog_3e333c4a0102vk0f.html Android系统自带样式(android:theme) '0A Theme.Dialog : (图1)Activity显示为对%E:��框模式 Theme.NoTitl

android程序猿HJ的博客 2万+

NSFC结题报告下载脚本失效?3步教你手动修复下载按钮问题(2024最新版)

针对NSFC官网域名变更导致结题报告下载脚本失效的问题,本文提供了详细的手动修复指南。通过三步操作,教你如何修改用户脚本的域名匹配规则,恢复下载按钮功能,确保NSFC结题报告下载器能继续高效工作。

vscode6remote的博客 751

无人机飞控技术最详细解读

已剪辑自: https://zhuanlan.zhihu.com/p/64519280[导读]被称作是“飞行器的大脑”的飞控到底是什么?以前,搞无人机的十个人有八个是航空、气动、机械出身,更多考虑的是如何让飞机稳定飞起来、飞得更快、飞得更高。如今,随着芯片、人工智能、大数据技术的发展,无人机开始了智能化、终端化、集群化的趋势,大批自动化、机械电子、信息工程、微电子的专业人材投入到了无人机研发大潮中,几年的时间让无人机从远离人们视野的军事应用飞入了寻常百姓家、让门外汉可以短暂的学习也能稳定可靠的飞行娱乐。不可

qq_41854911的博客 1万+

android Holo UI框架,Holo风格的开源中国Android客户端——持续更新(2)

一、我的资料:1、返回样式getSupportActionBar().setDisplayShowHomeEnabled(false);getSupportActionBar().setDisplayShowTitleEnabled(true);getSupportActionBar().setDisplayHomeAsUpEnabled(true);2、编辑头像和刷新android:id="@+...

weixin_36248747的博客 349

第一届“龙信杯”电子数据取证竞赛Writeup

第一届“龙信杯”电子数据取证竞赛Writeup

toto的博客 1万+

Android学习笔记: Android全屏与沉浸式

全屏和沉浸式 区别:全屏和沉浸式并不是同一概念,全屏是Android一直存在的一个样式(至少我测试的Android4.0以上都是可以全屏的),通过设置应用的主题或单个activity的flag达到全屏的效果,而沉浸式指的是一种效果,并非指沉浸式状态栏,可以通过修改状态栏的透明度和字体的颜色,并让整体布局占用状态栏的位置,使应用达到一种沉浸式的效果,本质也是布局全屏化了。 一.全屏 全屏的实现方式很...

zhang165849的专栏 1211

YOLO26改进策略【Neck】| arXiv 2025 分层多头注意力HMHA 子空间拆分提多样 + 通道重排降冗余,强化目标检测精度

HMHA(Hierarchical Multi-Head Attention,分层多头注意力)旨在解决传统多头注意力(MHA)在图像恢复任务中的核心缺陷——特征冗余。传统MHA将通道均匀拆分给各个头,导致不同头学习的子空间信息相似,进而出现多头关注同一区域、忽略退化区域修复的问题,限制了模型的特征表达能力。HMHA通过“分层子空间拆分+通道重排序”策略,让每个头学习差异化、互补的上下文特征,从根源上缓解冗余,提升图像恢复任务中对复杂退化场景的特征捕捉能力。

Limiiiing的博客 210

Spark Sql 连接mysql

转载请务必注明原创地址为:http://dongkelun.com/2018/03/21/sparkMysql/ 1、基本概念和用法(摘自spark官方文档中文版) Spark SQL 还有一个能够使用 JDBC 从其他数据库读取数据的数据源。当使用 JDBC 访问其它数据库时,应该首选 JdbcRDD。这是因为结果是以数据框(DataFrame)返回的,且这样 Spark SQL操作轻松或便......

主要分享大数据相关的知识,如Spark、Hudi 1万+

Android中实现应用切换主题机制(一)

一直很想弄清楚好多应用中是如何实现换皮肤这项功能的,花了下午点时间,查了下资料也实现了个切换主题的Demo; 首先要感谢下这位大哥,参阅了下他写的文件http://www.eoeandroid.com/forum-viewthread-tid-31756-highlight-%E7%9A%AE%E8%82%A4.html 好了,废话不多说了,该切换主题的demo里面一共实现了两个功能,

259

【Java基础】还看不懂JDK7 HashMap环的产生原理你来打我

JDK7对旧table数据重定位到新table的函数transfer如下,其中重点关注部分以标出。 头插法正常情况下: 并发情况下 线程1只执行了Entry<K,V> next = e.next就被挂起了,而线程2正常执行完毕,结果图如下: 线程1接着下面继续执行: 通过逐步分析跟绘图可以知道红色部分会有环产生。 ...

sowhat 4244

自定义Android主题从未如此简单:Cyanea高级配置教程

Cyanea是一款强大的Android主题引擎,让开发者和用户能够轻松自定义应用界面的视觉风格。无论是调整颜色方案、修改主题模式还是创建个性化主题,Cyanea都提供了简单直观的解决方案,帮助你打造独特的应用外观。 ## 为什么选择Cyanea主题引擎? Cyanea主题引擎为Android应用带来了前所未有的主题定制自由度。它不仅支持基础的颜色调整,还提供了完整的主题管理系统,让你能够轻松切

gitblog_00815的博客 479

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

android 换肤技术,一种Android换肤机制的实现

近的项目中需要添加换肤机制。期望达到的效果:代码修改小皮肤资源与主程序资源辨识度高效率高可扩展(自定义View及自定义属性)可选技术方案研究了一下目前的开源换肤方案的实现,大概是通过以下几种方式来实现:手动设置View属性。这种方案需要每个View的每个属性都至少要一行代码,且与具体Activity联系紧密。代码冗长,修改麻烦。使用Activity Theme。问题是需要重启Activity。资源...

weixin_39795116的博客 168

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Android Framework切换主题后应用Activity生命周期变化分析

零.前言 ​   在工作遇到了系统切换主题后,应用页面出现重叠错乱,播放音频的时候出现了点击图标后出现声音停顿1S 后继续播放的问题… 一.生命周期流程   此时,Activity经历了销毁到创建,状态保存到恢复状态的过程,不同的手机有一定的差别。 二.源码分析(Android M) protected void onSaveInstanceState(Bundle outState) { outState.putBundle(WINDOW_HIERARCHY_TAG, mWi

wangadping的博客 1094

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Colorful高级特性:如何实现自定义颜色和混合主题样式

Colorful是一款功能强大的Android运行时主题库,它允许开发者在应用运行时动态改变应用的颜色主题,为用户提供更加个性化的视觉体验。本文将详细介绍Colorful的高级特性,包括如何实现自定义颜色和混合主题样式,帮助开发者轻松打造出丰富多彩的应用界面。 ## 认识Colorful主题库 Colorful主题库为Android应用提供了灵活的主题定制能力,通过简单的API调用,开发者可以

gitblog_00745的博客 974

Android 触摸事件传递机制

关于Android的触摸事件传递机制我已经费劲心血的下功夫看了几次,可遗憾的是都没有完全弄明白。于是乎,今天我们再来试一下。

杜丹阳的博客 264

Android换肤功能设计与实现(1)

MIUI系统最具特色的功能就是系统级的主题换肤,能够更换任何可见的元素。像桌面ICON、桌面文件夹、桌面壁纸、APP中的各种图片资源、字体等等。如果一个ROM想像MIUI一样,支持这种功能的话,那么这个功能是如何实现的那。从功能实现角度划分,可以分成第三方也能换的,还有只有系统能换的。这里主要是Android系统开放的各种服务,实现换肤的功能。比如壁纸,铃声这些,通过系统的相关接口,可以实现对这些

7280

Android多进程加载资源失败问题分析:android.content.res.Resources$NotFoundException: Resource ID #0x7f08XXXX

在Android开发中如果存在多进程共享资源用法时, 会出现资源到不到问题. 真实碰到的问题, 记录下来提供同学们参考 一, 崩溃信息 崩溃日志如下 --------- beginning of crash 08-17 18:54:00.622 17167 17167 E AndroidRuntime: FATAL EXCEPTION: main 08-17 18:54:00.622 17167 17167 E AndroidRuntime: Process: com.mobile.emm.trus

zhanghao_Hulk的专栏 2358

[安卓] 深度掌握Jetpack Compose:现代Android声明式UI革命

/ 传统命令式UI(基于View)) {// 命令式:明确告诉UI如何更新count++count" // 手动更新UI// 声明式UI(基于Compose)// 声明式:描述UI应该是什么样子Column {count")// 当count变化时,Compose会自动重组UI。

2301_77946674的博客 2379

夜间模式

一、使用 setTheme 方法 在 colors.xml 中定义两组颜色,分别表示日间和夜间的主题色: xml version="1.0" encoding="utf-8"?> resources> color name="colorPrimary">#3F51B5color> color name="colorPrimaryDark">#303F9Fcolor>

得不到的都释怀的博客 753

【2013-10-29】Android应用开发笔记:全屏和去除标题栏

介绍 Android 去除标题栏和实现全屏的两种方式:代码方式通过 setFlags(FLAG_FULLSCREEN) 实现全屏,配置方式在 AndroidManifest.xml 中修改 application 的 theme 属性为 NoTitleBar 主题。

cstriker1407的专栏 15

Android全新UI编程 - Jetpack Compose 超详细教程

1. 简介 Jetpack Compose是在2019Google i/O大会上发布的新的库。Compose库是用响应式编程的方式对View进行构建,可以用更少更直观的代码,更强大的功能,能提高开发速度(这一段是谷歌自己说的)。 说实话,View/Layout的模式对安卓工程师来说太过于熟悉,对于学习曲线陡峭的Jetpack Compose能不能很好的普及还是有所担心。 因为Jetpack Compose的内容比较多,我会分成多个文章来进行介绍。 内容包括常用UI组件的使用,Flow和Compose的结合.

Android23333的博客 7358

Android 13 Settings的壁纸里面添加选项

我翻遍了整个源码,根本找不到这个activity的内容,我人麻了。根据我以往的经验,加个选项无非就是找到对应layout,然后加个Preference,再处理一下逻辑就ok了。最重要的当然是android.intent.action.SET_WALLPAPER 这个action,不然壁纸的那个activity是不会把我写的这个activity添加到它的选项里面去的。最近有一个需求,客户需要在设置的壁纸里面添加一个主题的选项,于是我兴高采烈的用AS打开Settings的工程,疯狂的查找壁纸所在的位置。

lojotee的博客 762

今天开始记录Android学习心得啦

暂时想记录Android学习面试中如下几个重点方面: 主流网络框架使用,理解和对比(Okhttp,Retrofit,Volley)+Json+Http 多媒体音视频 数据存储 MMKV+SharedPreference+SQL IPC机制 AIDL/Bundle//ContentProvider/Binder Service和BroadcastReceiver Activity 启动,生命周期,回调方法 消息机制 多线程 View绘制 计划每个星期写一到两篇 ...

DA123452的博客 190
上一篇: samba服务搭建
下一篇: Android 如何隐藏应用程序的图标
byszy
博客等级 码龄17年 42粉丝 36原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值