关于Android应用的资源,国际化和资源自适应

这篇文章其实早就想整理了,主要原因就是我对于应用资源很不注意,很不注意这个东西,但是这个东西虽然不难,却很重要(尤其是在需要更改的时候)。

如果从源代码来区分可以分为三大类:

1.界面布局文件,xml文件,文件中每个标签都对应于相对的View标签。

2.Java源文件。

3.资源文件:主要以各种Xml为主,还可以包括一些图片,音视频等资源。

如果要按照资源类型来分的话可分为如下两大类:

1.可以通过R清单类访问的原声资源,保存在assets目录下。需要通过getAssets()来拿。

2.可以通过R来访问的资源,保存在res目录下。

这里面res下可以有很多存储方式,AS和Eclipse目录还是有些不同,但我感觉整体也就呢么回事,因为我的电脑eclipse跑起来不卡,所以我就用eclipse介绍了。

通过getResource就可以获取到这些资源

关于Android应用的资源,国际化和资源自适应_第1张图片


使用字符串,颜色,尺寸资源资源:

关于Android应用的资源,国际化和资源自适应_第2张图片

colors:


    #ff0cbaa0

dimens:


    16dp
    16dp

strings:


    Lottery

用法的话xml里@就能用了。。

还可以用来定义bool类型。。。true

数组资源:



StateListDrawable资源:

用于组织多个Drawable对象,其实就是我们平时说的selector..

关于Android应用的资源,国际化和资源自适应_第3张图片

关于Android应用的资源,国际化和资源自适应_第4张图片

ShapeDrawable:用于定义一个基本的几何图形

弧度

定义渐变色填充

定义几何形状的内边距

大小

使用单种颜色填充

定义为几何形状绘制边框

还可以定义一些原始xml文件,通过pull去解析。

国际化:

baseName_language_country.properties

比如语言value-zh-rCN中就添加中文,values-en-rUS就添加英文。他会根据手机的文字设置自己去找相应的文字。

自适应不同屏幕:

要考虑屏幕尺寸(小,中,大,超大),屏幕分辨率(低,中等,高,超高),屏幕方向

有的会用values-多少乘多少去取一些不同的大小。但有时候也直接按照屏幕的权重来分(这样的话会轻松些)。

你可能感兴趣的:(Android)