巧妇难为无米之炊,任何app的开发都离不开资源。
对资源的处理主要包过3部分:
1. 资源的制作
2.资源的打包
3.资源的引用
1 资源的制作
对GUI来说最重要的就是控件大小,颜色,文字,图片,位置,关系。
参考文档:
http://developer.android.com/guide/topics/resources/index.html
目录结构:
animator/ 动画资源(property animations)。XML文件格式
anim/ 动画资源(tween animations)。XML文件格式
两者区别: 动画一般采用关键帧机制 key-frame, 熟悉Flash的都不会陌生。
采用插值算法,根据start与end计算关键帧信息。支持缩放、移动,旋转,与Alpha变化(比如经典的淡入淡出FadeInFadeOut)
f(key) = f(start) + (f(key) - f(start))/(f(end) - f(start)) * f(end) f:代表一个空间映射
tween animations: 属性不发生变化,底层描画时动态改变属性计算值。
property animations 通过属性变化来实现动画。
color/ 颜色。XML文件格式。
熟悉8位开发的一定会对调色板记忆犹新。使用颜色主要是为了风格的一致化。
这样当我们动态置换色板,就实现了风格的切换。
drawable/
图片资源。
通过代码的external目录 可以知道Android支持以下格式。
jpg 解码库Independent JPEG Group, 也就是闻名遐迩的IJG。
png 解码库libpng,http://sourceforge.net/projects/libpng/
gif 解码库GIFLIB
关于图片,说一些题外话。
图片通常都很费资源,而坦率的说移动设备毕竟还不是很牛,图片的缩放算法不大会使用3次线性差值或者频率空间差值算法。
这样系统提供的缩放品质肯定是很烂的。
就工作经验来说做法一般如下:
第一步:对特定分辨率设计一套图片
第二步: 在通用PC上开发批处理转换工具,采用高品质的缩放算法进行缩放+反锯齿 (这就是我们开发的工作了)
第三步: 美工对转换后的图片进行进一步优化。
通过文档可以看到Android支持以下分辨率:
ldpi 120dpi.
mdpi 160dpi
hdpi 240dpi.
xhdpi 320dpi
nodpi 不进行缩放
tvdpi 213dpi
坦率地说,对Android设备的碎片化感到很无奈。如果类似TV有严格的解像度规范,开发的工作会好很多。
用户体验也会好很多。
land 水平横放
layout/ 定义画面布局 XML文件格式
menu/ 菜单 XML文件格式
raw/ 自定义资源,自己负责解析。
values/
arrays.xml
colors.xml 颜色,格式 #AARRGGBB
(A:Alpha, R 红色,G 绿色,B 蓝色, 16进制)
dimens.xml 大小 格式参考百度文库 A
strings.xml 字符串
关于字符串,如果考虑到多国对应,建议使用Excel文档来管理。
行: 字符串ID 语言1 语言2
一般来说 中文和英语是要支持的。根据ISO 639-1 ,中国对应zh
具体处理流程:
1.开发人员制定Excel表,确定字符串ID,对应中文。
2.请专业翻译人员进行翻译
3. 学习VBA制作自动生成Android XML文档代码。(每一种语言一个文档)
styles.xml 风格,比如字体Font大小,颜色等。
xml/ XML文件格式