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

来源:互联网 发布:网络宣传阵地建设ppt 编辑:程序博客网 时间:2024/05/16 15:32

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

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

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

0 0