android 主题 实现,Android Application Theme的实现及管理

Android Application Theme的实现

一,原理

1,theme的形式

1-1 内置theme (一组特定前缀后缀的图片)

1-2 外置theme (只包含规范命名图片的apk)

2,实现

根据特定theme获取指定图片资源,并设置在view上。

步骤:

2-1获得指定包名的Context

2-2通过Context获得指定theme的图片资源

代码如下:public Context getThemeContext() {

if (mType == ThemeManager.THEME_TYPE_NATIVE)

return mDefContext ;

if (mContext != null)

return mContext ;

if (TextUtils.isEmpty( mPkg)

|| mDefContext.getPackageName().equals(mPkg ))

mContext = mDefContext;

try {

mContext = mDefContext.createPackageContext(mPkg ,

Context. CONTEXT_INCLUDE_CODE

| Context.CONTEXT_IGNORE_SECURITY );

} catch (NameNotFoundException e) {

e.printStackTrace();

}

return mContext ;

}

2-3其他事件

Theme的安装和卸载会影响theme列表,需要处理。

Theme的切换需要update()

二,关注点

1,本质

Theme架构完成之后,剩余的工作就是图片资源的管理。

1-1规范的命名

通过名字直接定位到具体页面的具体图标,这是目标。所以命名上的冗长是必须的。设计师和工    程师之间,会节约大量的沟通成本。

1-2流程

大约完成几个theme之后,设计师和工程师会有基本的感觉,有一些重复的工作。相关人员,参与相应的讨论,优化流程。

设计师:

设计方案的分类,基本类型涵盖三类

使用ps模板,省却命名的时间(经验证明)

工程师:

功能的细分,也有相应的模板。比如menu的实现有两种方式,则准备

对UI的敏感,能迅速发现ui的错误,这需要时间培养。之前有总结,参看博文:

其他:鱼与熊掌的问题:图片资源的复用/额外的筛选工作量

复用包括两方面:

一,复用主程序资源,比如背景

二,theme内部资源的复用,比如back键

一旦涉及复用,其实每一套theme的图片的总数是不定的,需要筛选,

很麻烦,工作量不少。我现在倾向于设计师给出全版本的图。这样工程师

的工作只需要调图即可。如果按照这个工作流程,出去设计一个theme

半天就可以完成发布。

2,架构的兼容性

2-1以设计为先导,用测试保证兼容性

Theme的前提就是follow设计师的设计,所以代码上必须保持灵活性或者兼容性

以保证不同的设计能在一个架构下实现。所以至少在三类设计下测试,保证兼容性。

因为一旦发布出去,此主程序和此theme便产生一一对应的关联,未来主程序对一

Theme的兼容性修改,都有可能导致其他theme不兼容。

2-2主程序的升级和theme的升级

当主程序不断增加新功能,对应的增加新UI元素。而已发布的theme需要增加一

些图片。通过定升级的协议,保证升级的提醒。

本文主要从技术点和项目管理方面谈了谈Theme,希望有所帮助。

附件给出theme workflow,需要修改文件名,删除后面的rar即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值