Android的Theme主题切换

article/2025/8/22 6:50:44

简单的Theme换肤功能

效果截图

1、定义属性
先定义几个需要改变的属性,例如:

<!--换肤--><attr name="userNameColor" format="color" /><attr name="commonColor" format="color" /><attr name="bgColor" format="color" /><attr name="itemColor" format="color" /><attr name="settingImage" format="reference" /><attr name="themeImage" format="reference" />

2、定义主题,在style中

    <style name="NightTheme" parent="AppTheme"><item name="userNameColor">@color/color_ffffff</item><item name="commonColor">@color/color_68737f</item><item name="bgColor">@color/color_1c232c</item><item name="itemColor">@color/color_181f29</item><item name="settingImage">@mipmap/settings_night</item><item name="themeImage">@mipmap/theme_night</item></style><style name="DayTheme" parent="AppTheme"><item name="userNameColor">@color/color_000000</item><item name="commonColor">@color/color_424242</item><item name="bgColor">@color/color_ffffff</item><item name="itemColor">@color/color_ffffff</item><item name="settingImage">@mipmap/settings_day</item><item name="themeImage">@mipmap/theme_day</item></style>

3、在布局中使用

<LinearLayout
  android:id="@+id/ll_parent"android:layout_width="match_parent"android:layout_height="match_parent"android:background="?attr/bgColor"><ListView
  android:id="@+id/lv_choose_project_item"android:layout_width="match_parent"android:layout_height="match_parent"android:divider="@null" /></LinearLayout>

4、在onCreate中调用,需要再setContentView之前调用,这边配合sp,记录用户喜欢的主题

boolean theme = (boolean) SPUtil.getInstance(Const.ConstantSp.SP_THEME_FILE_NAME).get(Const.ConstantSp.SP_THEME_KEY, true);
if (theme ) {MainActivity.this.setTheme(R.style.DayTheme);
} else {MainActivity.this.setTheme(R.style.NightTheme);
}
setContentView(R.layout.activity_main);

5、在切换的地方启动

finish();
Intent intent = getIntent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
overridePendingTransition(0, 0);

总结

通过Theme切换主题:
优点:实现简单,配置简单
缺点:需要重启应用;是固定皮肤,不能动态切换


http://chatgpt.dhexx.cn/article/BgaIhZy8.shtml

相关文章

Eclipse设置Theme主题颜色

设置Eclipse的代码编辑区背景为暗黑色系&#xff1a; 如需转载&#xff0c;请注明转载自&#xff1a;blog.csdn.net/it1988888 相关文件下载&#xff1a;http://guari.github.io/eclipse-ui-theme/ 方案一--下载颜色主题配置文件&#xff0c;离线导入配色方案的设置&#xf…

Jupyter lab Theme 主题更换

Jupyter lab Theme 主题更换 1. 打开Jupyter-lab2. 再拓展插件中搜索 “theme”3. 安装自己喜欢的主题4. 在Setting->JupyterLab Theme->选择"自己刚安装的主题"jupyterlab_miami_nights 主题jupyterlab_onedarkpro 主题 1. 打开Jupyter-lab 2. 再拓展插件中搜…

PySimpleGui theme主题使用

第一章 PySimpleGui theme主题使用 目录 系列文章目录 前言 一、theme是什么&#xff1f; 二、使用步骤 1.打印所有主题&#xff1a; 2.主题设置 3.更新主题的设置 总结 前言 通过设置主题&#xff0c;可快速设置GUI的颜色&#xff0c;节省自己设置UI的时间 一、theme是什么&a…

Hexo修改theme主题

学习目标 本文主要学习的内容如下&#xff1a; 如何去获取到 NexT 主题 如何去安装和配置 NexT 主题 设置菜单&#xff0c;如分类&#xff0c;标签&#xff0c;关于我等简单配置 获取开源的 Hexo 主题 在上节介绍如何快速去搭建 Hexo &#xff0c;最终展示的效果如下图所…

【Android开发基础】应用界面主题Theme使用方法

主题Theme就是用来设置界面UI风格&#xff0c;可以设置整个应用或者某个活动Activity的界面风格。在Android SDK中内置了下面的Theme&#xff0c;可以按标题栏Title Bar和状态栏Status Bar是否可见来分类&#xff1a; •android:theme"android:style/Theme.Dialog" …

Flutter 基础之 Theme 主题(样式篇)

声明&#xff1a;本篇文章已授权微信公众号 YYGeeker 独家发布。 博主原创文章&#xff0c;转载请注明出处&#xff1a;小嵩的博客 一、介绍 Theme 类将主题应用于子控件&#xff0c;Theme&#xff08;主题&#xff09;它描述了应用程序的颜色和排版选择。Theme有两种&#x…

Android中Theme主题和Style样式使用介绍总结

1.Theme主题 1.1.Theme主题作用范围 Theme主要是针对应用级别的或者说窗体级别&#xff0c;可以设置应用主题&#xff08;应用换肤效果&#xff09;和Activity的主题&#xff1b;主题是不能应用在某一个单独的View中&#xff1b;或者说Theme是用来设置应用全局主题风格的&…

【转】提升工作效率的一些小技巧——资源管理器篇

当我看到有人打开资源管理器&#xff0c;一个一个文件夹点进去&#xff0c;再点出来&#xff0c;我就着急。特别是有人在会议上打开我的电脑&#xff0c;然后寻找文件&#xff0c;我就特别捉急&#xff0c;这不只是在浪费自己的时间&#xff0c;还浪费参加会议人的时间。 我把资…

WPF 4 开发Windows 7 任务栏(Overlay Icon、Thumbnail Toolbar、Progress Bar)

在上一篇我们介绍了如何在WPF 4 中开发Windows 7 跳转列表&#xff0c;本篇将继续针对WPF 4 中任务栏其他功能&#xff1a;覆盖图标&#xff08;Overlay Icon&#xff09;、进度条&#xff08;Progress Bar&#xff09;、缩略图工具栏&#xff08;Thumbnail Toolbar&#xff09…

HTML+CSS提升小实战

1 <html>2 <head>3 <meta http-equiv"Content-Type" content"text/html; charsetutf-8" />4 <title>几米简介</title>5 <style type"text/css">6 *{7 margin:0px;padding:0px;8 …

java实现qlearning,DQN(Deep Q-learning)入门教程(一)之强化学习介绍

什么是强化学习? 强化学习(Reinforcement learning,简称RL)是和监督学习,非监督学习并列的第三种机器学习方法,如下图示: 首先让我们举一个小时候的例子: 你现在在家,有两个动作选择:打游戏和读书。如果选择打游戏的话,你就跑到了网吧,选择读书的话,就坐在了书桌面前…

实验一 书桌

实验内容&#xff1a; 了解四种视图&#xff0c;在绘制时&#xff0c;从不同的视图进行观察&#xff0c;提高绘制效率。知道常用工具的快捷键 一、四种视图 1、顶视图&#xff08;T&#xff09; 2、前视图&#xff08;F&#xff09; 3、左视图&#xff08;L&#xff09; 4、透…

学计算机的桌面,三个软件,干净你的电脑桌面,让你更高效工作学习!

文 | 谦行公子 首发 | 谦行公子 今天向大家推荐三个软件&#xff0c;为了就是让大家都拥有一个干净整洁的桌面&#xff0c;从此高效地学习生活&#xff5e;至于哪三个&#xff0c;接着看 相信很多人都有这样的经历&#xff0c;连续工作好几天甚至好几周&#xff0c;桌面上堆满…

小Q书桌 - 最完美纯净的任务栏Bins

虽然&#xff0c;TX 在众多网友的 眼中 都是山寨的代名词&#xff0c;都曾经很BS之。 诚然&#xff0c;鄙人也是对其某些作品不太满意。 但是&#xff0c;TX 仍有那么一些人再默默坚持着&#xff0c;给我们纯净的软件&#xff0c;纯净的视觉盛宴。 ……………………………………

【电脑管家之小Q书桌】

前言&#xff1a; 生活之中处处有知识&#xff0c;前几天&#xff0c;自己电脑无意间弹出了广告&#xff0c;心想&#xff0c;难道是最近重装了系统&#xff0c;电脑管家防广告功能关闭了&#xff0c;于是就去看了电脑管家&#xff0c;一切设置好后&#xff0c;一个好奇心又引导…

小Q书桌的下载、安装和使用

最近&#xff0c;无意之间&#xff0c;在某大牛电脑里&#xff0c;使用到了这款软件。感谢&#xff01; 确实&#xff0c;挺实用和方便的&#xff0c;强烈推荐&#xff01;&#xff01;&#xff01; 1、 下载 http://qdesk.qq.com/ 2、 安装 3、 使用 多么方便啊&#xff01…

腾讯小Q书桌图标怎么实现的啊?

Win7&#xff1a; 红色区域&#xff1a;类名是Shell_TrayWnd的容器 黄色区域&#xff1a;类名是ReBarWindow32的二级容器 绿色区域&#xff1a;类名是MSTaskSwWClass的窗口 WinXP&#xff1a; 红色区域&#xff1a;红色区域——类名是Shell_TrayWnd的容器…

小Q书桌支持WIN10完美运行 关于win10不兼容小q书桌

原文出处: https://zhuanlan.zhihu.com/p/62378877 背景&#xff1a; 小Q书桌是一款简洁易用的桌面图标管理工具&#xff0c;几年前就开始使用。 由于win10的普及&#xff0c;目前更换为win10系统&#xff0c;但由于小Q书桌已经很多年没更新&#xff0c;导致出现以下兼容问题&a…

小i机器人伴侣_【数据分析】2020年3月全国工业机器人产量统计数据分析

前 言 据中商产业研究院数据库显示&#xff0c;2020年1季度全国工业机器人产量波动幅度较小&#xff0c;2020年3月全国工业机器人产量为17241套&#xff0c;同比增长12.9%。2020年1季度全国工业机器人产量为34645.3套&#xff0c;同比下降8.2%。 数据来源&#xff1a;中商产业…

一个眼神 比亚迪车载机器人为你点歌

无论是通过触摸屏还是语音控制&#xff0c;车载系统的目的都是为了提供更多驾驶乐趣。在北京车展上&#xff0c;比亚迪推出“秦”电动车&#xff0c;其仪表台上配备的“i”机器人可通过表情、动作和语音和驾驶者互动&#xff0c;提供多种服务。 这个小机器人采用了一个微笑的卡…