换肤系统(oocss方式)】的更多相关文章

近期想做一个换肤系统,参考过Bootstrap系统,思前想后,内容不难,但就是理不清楚,主要是换肤系统的css如何设计,怎样设计可重用性最好,后期更方便修改和维护,还有一个最头疼的就是怎么给css进行命名,没有一个系统的,清晰的,一目了然的命名恐怕自己做到最后也都忘了.今天看到咱们博客上的一篇文章,受益良多,面向对象CSS(OOCSS),原谅我才疏学浅,2008年就被提出来了,我现在才第一次见这个名词.虽然还有人没听过这个名词,但其实也许自己已经用过这个概念和方式,它不是针对换肤系统被提出的概念…
说起换肤功能,前端肯定不陌生,其实就是颜色值的更换,实现方式有很多,也各有优缺点 一.可供选择的换肤 对于只提供几种主题方案,让用户来选择的,一般就简单粗暴的写多套主题 一个全局class控制样式切换,直接更改全局class <body class='dark'></body> 使用js去修改 link 的 href <link id='link_theme' href="skin.css" rel="stylesheet" type=…
Android平台api没有特意为换肤提供一套简便的机制,这可能是外国的软件更注重功能和易用,不流行换肤.系统不提供直接支持,只能自行研究. 换肤,可以认为是动态替换资源(文字.颜色.字体大小.图片.布局文件……).这个使用编程语言来动态设置是可以做到的,例如使用View的setBackgroundResource.setTextSize.setTextColor等函数.但我们不可能在每个activity里对页面里的所有控件都通过调用这些函数来换肤,这样的程序代码难以维护.扩展,也违背了UI和代…
新入手一台Windows 8的笔记本,安装了VS2013后,终于又可以开发WP了.公司暂时不愿意开发WP,那么咱就自行研究吧! 在没有WP开发环境的时候,曾经在WPF尝试了一下换肤功能的实现.最简单的是在后台修改需要更换样式的控件的Style,然而这样做工作量很大而且可拓展性也很差.总不可能添加一种主题皮肤,就在每个页面写一次Style的加载吧,工作量太大又容易出错. 于是在MSDN上仔细阅读了相关文档,发现了DynamicResource拓展关键字.MSDN描述为“为任何 XAML 属性特性提…
一.概述 由于Android 没有提供一套统一的换肤机制,我猜可能是因为国外更注重功能和体验的原因 所以国内如果要做一个漂亮的换肤方案,需要自己去实现. 目前换肤的方法大概有三种方案: (1)把皮肤资源文件内置于应用程序Apk的资源目录下,这种方案最简单,但是导致apk安装包比会比比较大,而且不好管理 (2)将皮肤资源文件打包成zip的资源文件方式提供,该方法也比较多被采用. (3)将皮肤图片资源以独立的Apk安装包的方式提供,做成插件化的方式.便于管理. 本文主要讨论第三种实现. 二.效果演示…
在上一篇文章Android动态换肤(一.应用内置多套皮肤)中,我们了解到,动态换肤无非就是调用view的setBackgroundResource(R.drawable.id)等方法设置控件的背景或者文字等资源,跟踪源码看看这些方法都是怎么根据资源ID找到对应的资源的: View: @RemotableViewMethod public void setBackgroundResource(int resid) { if (resid != 0 && resid == mBackgroun…
换肤思路: 1.什么时候换肤? xml加载前换肤,如果xml加载后换肤,用户将会看见换肤之前的色彩,用户体验不好. 2.皮肤是什么? 皮肤就是apk,是一个资源包,包含了颜色.图片等. 3.什么样的控件应该进行换肤? 包含背景图片的控件,例如textView文字颜色. 4.皮肤与已安装的资源如何匹配? 资源名字匹配 步骤: 1.xml加载前换肤,意味着需要将所需要换肤的控件收集起来.因此要监听xml加载的过程. public class BaseActivity extends Activity…
一.前言 Qt中的动态换肤技术是非常一流的,直接调用qApp->setStyleSheet(qss);就可以对整个应用程序进行换肤,如果样式表内容不多,或者对应的贴图不对,效率还是蛮好的,不过据说有些人写了几千行的样式表,加载起来能够明显感觉卡顿,毕竟此时全部刷新加载重绘,是非常耗CPU的,这种情况就需要避免尽量统一样式表,能合并的就合并,当然,在性能比较好的电脑上,这个基本上遇不到的,也感觉不到的,好比现在的手机相比于十年前的手机,现在动不动都6GB内存了,比起以前256MB内存的时候,不知道…
现在很多APP都有换肤的功能,例如微博,QQ等应用.这些应用的换肤原理是什么? 在用微博的时候,不难发现,当你要换肤时,先下载并安装一个皮肤apk,然后选择这个皮肤,就可以了. 这种方式就是把皮肤打包成一个APK,然后在主程序中访问这个皮肤APK中的资源.这种方式需要涉及到两个应用之间的数据访问了. 那如何做到应用间的数据访问呢? 这就得用到Android shareUserId这个属性了.通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中.所以默…
一.背景 在越来越重视用户体验的今天,换肤功能也慢慢被重视起来.一个web系统用户可以选择一个自己喜欢的系统主题,在用户眼里还是会多少加点分的.我们很开心的是easyui v1.3.4有自带default gray black bootstrap metro五款皮肤,但是它并不像bootsrap提供了很完整的css框架,不能提供项目需要的所有的css,所以还需要自己编写控件之外的一些css.给系统换肤时,easyui控件都没问题,问题就在于自己编写的这部分css怎么实现换肤,当然,最简单的办法就…
一.换肤 1.思路1> 解决方案1,使用颜色作为图片素材的命名关键字 问题1:要保证每套图片的文件名 颜色+ 名称.png的格式比较麻烦 问题2:如果要将某一个图片应用到其他皮肤不方便2> 解决方案2,利用Bundle,将图片文件保存在不同的Bundle中 问题:平面设计师维护不方便3> 解决方案3,利用文件夹(蓝色),将图片文件保存在不同文件夹中 好处:便于平面设计师针对不同的文件夹维护图片素材扩展,将用户上次使用的皮肤保存在用户偏好中 2.可能遇到的问题 问题一:默认进来是没有皮肤颜…
一.前言 今天又到周末了,感觉时间过的很快呀.又要写blog了.那么今天就来看看应用的换肤原理解析.在之前的一篇博客中我说道了Android中的插件开发篇的基础:类加载器的相关知识.没看过的同学可以转战: http://blog.csdn.net/jiangwei0910410003/article/details/41384667 二.原理介绍 现在市场上有很多应用都有换肤的功能,就是能够提供给用户一些皮肤包,然后下载,替换.而且有些皮肤是要收费的.对于这个功能的话,其实没有什么技术难度的,但…
换肤,我们都很熟悉,像XP的主题,塞班的主题.看过国外的一些技术博客,就会发现国内和国外对软件的,或者说移动开发的软件的需求的不同.国外用户注重社交.邮件等功能,国内用户则重视音乐.小说.皮肤等功能,国内有很多的软件都支持换肤,像腾讯微博.墨迹天气等. Android系统通过XML 形式描述各种资源,包括布局.字符串.样式.交互风格等,通常存放在res目录中,使应用逻辑和界面设计分离开来,让开发者可以专注于代码逻辑. 换肤就是换掉皮肤包括的部分或所有资源.皮肤一般含有多个文件,例如图片.配置等文…
2016年7月6日 更新:主题换肤库子项目地址:ThemeSkinning,让app集成换肤更加容易.欢迎star以及使用,提供改进意见. 更新日志: v1.3.0:增加一键切换切换字体(初版)v1.2.1:完善之前版本View的创建v1.2.0:增加对换肤属性自定义扩展v1.1.0:可以直接加载网络上的皮肤文件 今天再给大家带来一篇干货. Android的主题换肤 ,可插件化提供皮肤包,无需Activity的重启直接实现无缝切换,可高仿网易云音乐的主题换肤. 这个链接是本次的Demo打包出来的…
由于Android的设置中并没有夜间模式的选项,对于喜欢睡前玩手机的用户,只能简单的调节手机屏幕亮度来改善体验.目前越来越多的应用开始把夜间模式加到自家应用中,没准不久google也会把这项功能添加到Android系统中吧. 业内关于夜间模式的实现,有两种主流方案,各有其利弊,我较为推崇第三种方案: 1.通过切换theme来实现夜间模式.2.通过修改uiMode来切换夜间模式. 3.通过插件方式切换夜间模式. 值得一提的是,上面提到的几种方案,都是资源内嵌在Apk中的方案,像新浪微博那种需要通过…
1.相关文章 Qt 资源系统qt的moc,uic,rcc命令的使用 2.概要    毕业两年了,一直使用的是qt界面库来开发程序,使用过vs08.10.13等开发工具,并安装了qt的插件,最近在做客户端换肤功能,所以就对qt的qrc做了点儿研究,我是一个实干派(可能有点儿虚),相对于看文档来说.本文开头我就给出了两篇博客,这两篇博客对我理解qrc这个东西有很大的帮助,接下来我就简单分析下我的理解. 首先说明下qrc是qt的东西,而不属于vs,这也很容易证明,那就是vs的工程师不识别qrc文件的,…
原文:WPF换肤之四:界面设计和代码设计分离 说起WPF来,除了总所周知的图形处理核心的变化外,和Winform比起来,还有一个巨大的变革,那就是真正意义上做到了界面设计和代码设计的分离.这样可以让美工和程序分开进行,而不是糅合在一块,这样做的好处当然也是显而易见的:提高了开发效率. 原先的设计方式 在我们之前设计的代码中,每当添加一个新的窗体的时候,我总是会在这个新的窗体的XAML文件中加入如下的代码,以便使样式能够应用上去: <Window x:Class="WpfApplicatio…
原文:WPF换肤之五:创建漂亮的窗体 换肤效果 经过了前面四章的讲解,我们终于知道了如何拖拉窗体使之改变大小,也知道了如何处理鼠标事件,同时,也知道了如何利用更好的编写方式来编写一个方便实用和维护的换肤程序.下面请看换肤效果(首先声明,窗体样式和按钮样式均来自于CodeProject,本人美工太差): 支持效果: 窗体拖拉,可以任意拖动窗体:重写了自带的DragMove类,使得拖拉和Resize不冲突. 窗体大小改变:通过WndProc接收所有的Windows消息来处理. 最大化,最小化,关闭窗…
1.相关文章 Qt 资源系统qt的moc,uic,rcc命令的使用 2.概要    毕业两年了,一直使用的是qt界面库来开发程序,使用过vs08.10.13等开发工具,并安装了qt的插件,最近在做客户端换肤功能,所以就对qt的qrc做了点儿研究,我是一个实干派(可能有点儿虚),相对于看文档来说.本文开头我就给出了两篇博客,这两篇博客对我理解qrc这个东西有很大的帮助,接下来我就简单分析下我的理解. 首先说明下qrc是qt的东西,而不属于vs,这也很容易证明,那就是vs的工程师不识别qrc文件的,…
一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) JavaScript历史背景介绍 布兰登 • 艾奇(Brendan Eich,1961年-),1995年在网景公司,发明的JavaScript. 一开始JavaScript叫做LiveScript,但是由于当时Java这个语言特别火,所以为了傍大牌,就改名为JavaScript.如同“北大”和“北大青鸟”…
一.问题的提出 不知道大家有没有发现, 元旦期间, 很多APP界面里的图标都换成了具有节日气氛的样式, 而在过了元旦节之后, 这些图标又悄无声息的变回了本来的面貌. 这些具有短暂生命周期.而又必须在固定时间节点上展示的节日皮肤, 究竟是如何实现的呢? 显然, 通过发布新版本可以实现, 但是对于iOS端的应用来说, 面对苹果APP Store不确定的审核时间, 开发人员往往需要提前1~2周完成并提交审核, 而且每到一个节日都要重新发布一个新版本, 难免略显被动. 热更新是一个不错的选择! 试想一下…
原文:在WPF中创建可换肤的用户界面 在WPF中创建可换肤的用户界面.                                                                       周银辉 译                                                                       原文参见: http://www.codeproject.com/WPF/SkinningInWPF.asp下载示例代码 介绍    这…
一.需求说明 当一个APP用户量大的时候,就需要给不同的用户做标签,用来彰显身份.比如QQ的会员,VIP等不同的皮肤功能. 二.实现方法. 所谓不同的皮肤,就是不同的权限(身份)显示不同的本地或者网络图片.为了给图片做区别.就需要不同的命名方式. 比如普通身份(status_normal),vip身份(status_vip). 也就是说在基础的图片名后面加上身份标记. 需要写一个UIImage的Category. 需要处理的是:将系统的imageNamed方法替换成自己的方法MC_imageNa…
一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) JavaScript历史背景介绍 布兰登 • 艾奇(Brendan Eich,1961年-),1995年在网景公司,发明的JavaScript. 一开始JavaScript叫做LiveScript,但是由于当时Java这个语言特别火,所以为了傍大牌,就改名为JavaScript.如同“北大”和“北大青鸟”…
说明 换肤功能,即将整个应用的皮肤都进行更换,其实质,是动态加载swf文件的过程,而这些swf文件则有css文件编译而来. 关于换肤功能,在android和ios系统的实现方式是不同的.主要原因,是因为ios不支持本地加载(ipa中包含)多个swf文件. 换肤基础 1) 原理 :就是将各种不同的css文件先编译成swf,然后用StyleManager类的loadStyleDeclarations方法加载换肤的swf. 2) 基础: 定义css文件,如下: /* CSS file */ @name…
学习缺的不是时间,而是耐心 目的 1.搞懂系统获取资源文件到在加载布局的整个流程是自己实现换肤功能的理论基础 2.提高分析源码.追踪源码的能力 要点 1.XmlResourceParser (通过这个类可以将xml中的每一个控件取出来) 2.Factory2(创建兼容的view,为null的话,通过反射的方式创建非兼容的view) 源码阅读 版本:android-29 跟踪setContentView探索view的实例化 public class MainActivity extends App…
一如既往没废话! wpf桌面应用开发都是window内引入很多个UserControl. 如果你有通过不同颜色来换肤的需求,那么下面我就将整个过程! 分2个步骤: 1.主窗体背景色替换: 2.同时界面内部部分控件(如:Button)也同步换色: 那么下面开始编码: window窗体背景色切换: 如图,是一个Button群,每个按钮都代表一个颜色 对应的代码: <Button Grid.Row="0" Grid.Column="0" Width="20…
原文出处: 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 app,其换肤需求可以归为 白天/黑夜主题切换(或者别的名字,通常2套),如同花顺/自选股/天天动听等,UI表现为一个switcher. 多种主题切换,通常为会员特权,如QQ/QQ空间. 对于第一种来说,目测应该是直接通过本地theme来做的,即所有图片/…
这篇将介绍使用DynamicResource实现动态的界面切换功能.熟悉WPF的园友应该已经猜到了实现方式,简而言之就是动态替换DataTemplate,ControlTemplate,Style等等UI相关的属性. 那么使用DynamicResource能让UI动态到什么程度呢?可以说,心有多大,就可以做多大,只要你想得到,就可以做出来. 下面以展示层次数据结构为例,实现了运行时切换数据显示界面结构的功能.先来看一下要显示的数据,是一个XML文件. <earth> <country n…
第一版本: http://ishare.iask.sina.com.cn/f/13836420.html?from=like 2. http://www.cnblogs.com/phinecos/archive/2008/04/14/1152696.html 3. http://www.emsky.net/bbs/archiver/?tid-28229.html 4. http://hi.baidu.com/wdmzslh/item/af389ef068779d28743c4c2e 5. htt…