Android UI换皮肤或 白天黑夜模式
Android UI换皮肤或 白天黑夜模式
UI换皮肤或白天黑夜模式,从产品上来看,是两种不同产品设计模式:白天黑夜模式只有两种模式;而换皮肤可以有多套,可以进行商业化,并盈利。
> 白天夜间模式场景,换肤框架
-- 关于三种『应用内主题切换』开源项目的一点思考- https://www.jianshu.com/p/2164fa5803b9
1.Theme的方案,在style文件中定义不同的主题即可
2.遍历View,对主题的更换,使用遍历View,然后单独设置更改后的属性即可。
即可以采用的是Theme+遍历更新View的思路。
-- 夜间模式需要对屏幕上的文字/图片/视频三种表现形式做特殊处理,具体细化如下:
1)对界面背景,白色等浅色背景应该变成黑色/灰色之类的深色背景,以此降低屏幕亮度减少视觉刺激;
2)对文字,因背景色变深,文字颜色需变浅,以形成对比效果;
3)对图片,对图片加蒙层,避免加载浅色图片带来的视觉刺激;
4)对视频,通常在播放界面增加亮度变化功能,由用户来决定屏幕亮度。
-- 换肤功能的实现,总的来讲分为两类:主题换肤(Theme)和插件换肤(APK换肤)。attr不依赖于styleable,styleable只是为了方便attr的使用。
主题换肤- https://github.com/chuyun923/CustomAttrExmp
the day and night mode switch by switch app theme- https://github.com/WuLiFei/DayNightModeSwitch
An Android reading app, including articles from Zhihu Daily, Guokr Handpick and Douban Moment- https://github.com/TonnyL/PaperPlane
> 换肤框架AndroidChangeSkin和AndroidSkinLoader
AndroidChangeSkin和AndroidSkinLoader两个框架内选择一个合适的框架做夜间模式的实现效果。
换肤AndroidSkinLoader- https://github.com/fengjundev/Android-Skin-Loader
- 换肤AndroidChangeSkin是基于View的Tag指定另一套皮肤的资源Id的框架,此框架有一个优化版本Injor,本文基于此版本与AndroidSkinLoader做对比。整体来看,Injor和AndroidSkinLoader的换肤速度都是满足需求的,大约在200~500ms之间;两者都不需要重启Activity使换肤生效。其他的对比如下:
1.Injor需要占用View的Tag标签来指定资源id,标签内容格式比较复杂(类似:skin:textColor:color_text|Background:color_bg);但支持自定义View的属性,可扩展性比较好;
2.AndroidSkinLoader通过代理LayoutInflater创建View的过程来解析属性id,再从其他资源包中找出相同id的资源来做皮肤切换;不过所有View都被存在框架内,可能会导致内存泄露;并且不支持自定义属性,可扩展性比较差;
- 换肤框架QSkinLoader- https://github.com/qqliu10u/QSkinLoader
> 其他换肤
Android拍照适配问题,Matrix,夜间模式实现套路- https://github.com/D-clock/AndroidStudyCode
一种完全无侵入的换肤方式,支持插件式和应用内,无需重启Activity.- https://github.com/hongyangAndroid/AndroidChangeSkin
基于Theme的Android动态换肤库- https://github.com/hehonghui/Colorful
Android换肤/夜间模式的Android框架- https://github.com/dersoncheng/MultipleTheme
Android夜间模式官方最佳实践,AppCompat v23.2 的新特性- https://github.com/liaohuqiu/android-support-23.2-sample
Android 夜间模式的实现(一) - https://github.com/brokge/NightModel
Android主题切换(Theme)实现日夜间功能- http://blog.csdn.net/mario_0824/article/details/60775014
Yet another daynight switcher solution without recreating activity- https://github.com/geminiwen/SkinSprite
Anroid主题切换—夜间/白天模式探究- http://blog.csdn.net/u010687392/article/details/48088571
知乎和简书的夜间模式实现套路-http://www.jianshu.com/p/3b55e84742e5#
夜间模式实现套路- https://github.com/D-clock/AndroidStudyCode
Android夜间模式的几种实现-http://www.cnblogs.com/yuanzhanxue/p/3470820.html
Android-skin-support 一款用心去做的Android 换肤框架- https://blog.csdn.net/ximsfei/article/details/54586827
Android 换肤框架- https://github.com/ximsfei/Android-skin-support
Android换肤功能实现与换肤框架QSkinLoader- https://blog.csdn.net/u013478336/article/details/53083054
injor- https://github.com/hackware1993/injor
Android换肤技术总结- http://blog.zhaiyifan.cn/2015/09/10/Android%E6%8D%A2%E8%82%A4%E6%8A%80%E6%9C%AF%E6%80%BB%E7%BB%93/
Android的主题换肤- https://github.com/burgessjp/MaterialDesignDemo
Android的主题换肤- https://github.com/burgessjp/ThemeSkinning
Android 主题切换的一个Demo - http://download.csdn.net/download/u012814963/9493559
Android UI换皮肤或 白天黑夜模式相关推荐
- android应用换皮肤(转)
看到好多人在问题与解答里面都问怎么换肤,搜了一下论坛里面好像没怎么人弄个实例出来,所以我来了,哈哈.. 下面的文字大部分是转载的,也懒得自己去打字了,文采不好. 转载地址:http://www.cnb ...
- android换皮肤思路总结
前段时间公司有做换皮肤的项目,经过网上搜罗,查看资料,我个人总结三种换皮肤的方法. 网上说的最多的就是使用android:sharedUserId标签来共享资源,但是经我测试无论用不用这 ...
- Android 换皮肤
转载:http://blog.csdn.net/bboyfeiyu/article/details/48322023 最近本人需要用到夜间模式,但是经过一番搜索似乎并没有看到好的开源实现,看到有一个类 ...
- android l风格皮肤,基于Android-Skin-Loader实现换肤效果
skin-loader框架的换肤是通过插件化的形式替换资源文件,实现换肤效果.好处是可以在线更新皮肤换肤 Demo样例 流程 整个框架大概的流程是加载皮肤包,找到被标记的控件,通过自定义的Factor ...
- android 类似QQ 换皮肤 实现思路 apk资源共享
android 类似QQ 换皮肤 实现思路 apk资源共享 发布:t80t90s | 发布时间: 2013年3月30日 原文:http://t80t90s.com/view.asp?id=23 1.首 ...
- android应用换肤功能,如何给Android应用更换皮肤
Android应用更换皮肤功能的实现思路 我们可以将皮肤包做成一个apk文件,在应用apk中读取皮肤包中的数据. 应用apk读取皮肤包apk的数据的条件 1. 有相同签名 2. AndroidMani ...
- android 上面月亮模式,Android UI 篇- 手势月亮 亮度动画
Android UI 篇- 手势月亮动画 一.应用场景 1.1.先上效果图 2020-05-03 01_00_28.gif 一个有创意的亮度动画,通过手势上下滑动控制手机屏幕亮度,动画从太阳(天亮了) ...
- GitHub上受欢迎的Android UI Library-项目开发实战篇:带各类框架链接地址详细解说及使用方法
这是我列举的下列所有框架github地址:https : //github.com/opendigg/awesome-github-android-ui 抽屉菜单类的框架 MaterialDrawer ...
- android theme material,Android Studio 换主题(Material Theme..)
1.去如下网址下载自己喜欢的主题文件xx.jar http://color-themes.com/?view=index 2. 导入方式 下载主题-xxx.jar 注意:如果我们下载下来的jar名字如 ...
最新文章
- Java单例模式:饿汉与懒汉区别
- redis主从复制实验,使用ruby
- 126篇殿堂级深度学习论文分类整理 从入门到应用(下)
- Java虚拟机运行流程
- cocos2d-x游戏实例(21)-纵版射击游戏(8)
- 北京邮电大学c语言按要求输出_C语言经典100例004-统计各个年龄阶段的人数
- 35-46集 中心极限定理、置信区间
- 基于bootstrap_登陆页面
- 关于JSTL的简单说明
- 电商实例、业务并发、网站并发及解决方法
- Jaunt和Dolby联手,为VR视频带来更带感的全景声场体验
- 我的微博,三层嵌套,
- SQL 个人所学目录
- 老林学习笔记 :纯js 继承 闭包 与js实现继承原理 veu实现继承
- work-stealing调度算法
- mybatis看这一篇就够了,简单全面一发入魂
- 使用nc命令检查Linux系统远程端口是否打开
- 项目总是延期令人头疼?Tracup帮你做好项目进度管理
- 2021寒假MISC打卡DAY2
- php中的nl2br函数,PHP nl2br()函数与示例
热门文章
- html轮播图jquery,原生js和jquery实现图片轮播特效
- 第一类和第二类曲面积分的转换
- vue 监听输入法方法(js)
- css——font 样式和对照表 颜色格式和颜色渐变
- 暴雪不管的国服 链游要插手
- 计算机三维成像在哪些领域有运用,【图】三维动画类别及运用领域,三维动画分类介绍...
- 无限循环小数四则运算_0.9999……=1? 无限循环小数能否进行四则运算?
- 【快速幂取模】NOI 7833:幂的末尾
- 用计算机解决小学数学问题,小学数学学习中存在的问题和解决策略
- 我的工作随手记(一)