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换皮肤或 白天黑夜模式相关推荐

  1. android应用换皮肤(转)

    看到好多人在问题与解答里面都问怎么换肤,搜了一下论坛里面好像没怎么人弄个实例出来,所以我来了,哈哈.. 下面的文字大部分是转载的,也懒得自己去打字了,文采不好. 转载地址:http://www.cnb ...

  2. android换皮肤思路总结

       前段时间公司有做换皮肤的项目,经过网上搜罗,查看资料,我个人总结三种换皮肤的方法.     网上说的最多的就是使用android:sharedUserId标签来共享资源,但是经我测试无论用不用这 ...

  3. Android 换皮肤

    转载:http://blog.csdn.net/bboyfeiyu/article/details/48322023 最近本人需要用到夜间模式,但是经过一番搜索似乎并没有看到好的开源实现,看到有一个类 ...

  4. android l风格皮肤,基于Android-Skin-Loader实现换肤效果

    skin-loader框架的换肤是通过插件化的形式替换资源文件,实现换肤效果.好处是可以在线更新皮肤换肤 Demo样例 流程 整个框架大概的流程是加载皮肤包,找到被标记的控件,通过自定义的Factor ...

  5. android 类似QQ 换皮肤 实现思路 apk资源共享

    android 类似QQ 换皮肤 实现思路 apk资源共享 发布:t80t90s | 发布时间: 2013年3月30日 原文:http://t80t90s.com/view.asp?id=23 1.首 ...

  6. android应用换肤功能,如何给Android应用更换皮肤

    Android应用更换皮肤功能的实现思路 我们可以将皮肤包做成一个apk文件,在应用apk中读取皮肤包中的数据. 应用apk读取皮肤包apk的数据的条件 1. 有相同签名 2. AndroidMani ...

  7. android 上面月亮模式,Android UI 篇- 手势月亮 亮度动画

    Android UI 篇- 手势月亮动画 一.应用场景 1.1.先上效果图 2020-05-03 01_00_28.gif 一个有创意的亮度动画,通过手势上下滑动控制手机屏幕亮度,动画从太阳(天亮了) ...

  8. GitHub上受欢迎的Android UI Library-项目开发实战篇:带各类框架链接地址详细解说及使用方法

    这是我列举的下列所有框架github地址:https : //github.com/opendigg/awesome-github-android-ui 抽屉菜单类的框架 MaterialDrawer ...

  9. android theme material,Android Studio 换主题(Material Theme..)

    1.去如下网址下载自己喜欢的主题文件xx.jar http://color-themes.com/?view=index 2. 导入方式 下载主题-xxx.jar 注意:如果我们下载下来的jar名字如 ...

最新文章

  1. Java单例模式:饿汉与懒汉区别
  2. redis主从复制实验,使用ruby
  3. 126篇殿堂级深度学习论文分类整理 从入门到应用(下)
  4. Java虚拟机运行流程
  5. cocos2d-x游戏实例(21)-纵版射击游戏(8)
  6. 北京邮电大学c语言按要求输出_C语言经典100例004-统计各个年龄阶段的人数
  7. 35-46集 中心极限定理、置信区间
  8. 基于bootstrap_登陆页面
  9. 关于JSTL的简单说明
  10. 电商实例、业务并发、网站并发及解决方法
  11. Jaunt和Dolby联手,为VR视频带来更带感的全景声场体验
  12. 我的微博,三层嵌套,
  13. SQL 个人所学目录
  14. 老林学习笔记 :纯js 继承 闭包 与js实现继承原理 veu实现继承
  15. work-stealing调度算法
  16. mybatis看这一篇就够了,简单全面一发入魂
  17. 使用nc命令检查Linux系统远程端口是否打开
  18. 项目总是延期令人头疼?Tracup帮你做好项目进度管理
  19. 2021寒假MISC打卡DAY2
  20. php中的nl2br函数,PHP nl2br()函数与示例

热门文章

  1. html轮播图jquery,原生js和jquery实现图片轮播特效
  2. 第一类和第二类曲面积分的转换
  3. vue 监听输入法方法(js)
  4. css——font 样式和对照表 颜色格式和颜色渐变
  5. 暴雪不管的国服 链游要插手
  6. 计算机三维成像在哪些领域有运用,【图】三维动画类别及运用领域,三维动画分类介绍...
  7. 无限循环小数四则运算_0.9999……=1? 无限循环小数能否进行四则运算?
  8. 【快速幂取模】NOI 7833:幂的末尾
  9. 用计算机解决小学数学问题,小学数学学习中存在的问题和解决策略
  10. 我的工作随手记(一)