这篇文章其实早就想整理了,主要原因就是我对于应用资源很不注意,很不注意这个东西,但是这个东西虽然不难,却很重要(尤其是在需要更改的时候)。
如果从源代码来区分可以分为三大类:
1.界面布局文件,xml文件,文件中每个标签都对应于相对的View标签。
2.Java源文件。
3.资源文件:主要以各种Xml为主,还可以包括一些图片,音视频等资源。
如果要按照资源类型来分的话可分为如下两大类:
1.可以通过R清单类访问的原声资源,保存在assets目录下。需要通过getAssets()来拿。
2.可以通过R来访问的资源,保存在res目录下。
这里面res下可以有很多存储方式,AS和Eclipse目录还是有些不同,但我感觉整体也就呢么回事,因为我的电脑eclipse跑起来不卡,所以我就用eclipse介绍了。
通过getResource就可以获取到这些资源
使用字符串,颜色,尺寸资源资源:
colors:
<resources> <color name="title_bg">#ff0cbaa0</color> </resources>
dimens:
<resources> <dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen> </resources>
strings:
<resources> <string name="app_name">Lottery</string> </resources>
用法的话xml里@就能用了。。
还可以用来定义bool类型。。。<bool name="gg">true</bool>
数组资源:
<array name=""><item></item></array>
<string-array../>
<integer-array../>
StateListDrawable资源:
用于组织多个Drawable对象,其实就是我们平时说的selector..
ShapeDrawable:用于定义一个基本的几何图形
<shape android:shape="[rectangle,oval,line,ring]">
<corners/>弧度
<gradient/>定义渐变色填充
<padding/>定义几何形状的内边距
<size/>大小
<solid/>使用单种颜色填充
<stroke/>定义为几何形状绘制边框
</shape>
还可以定义一些原始xml文件,通过pull去解析。
国际化:
baseName_language_country.properties
比如语言value-zh-rCN中就添加中文,values-en-rUS就添加英文。他会根据手机的文字设置自己去找相应的文字。
自适应不同屏幕:
要考虑屏幕尺寸(小,中,大,超大),屏幕分辨率(低,中等,高,超高),屏幕方向
有的会用values-多少乘多少去取一些不同的大小。但有时候也直接按照屏幕的权重来分(这样的话会轻松些)。