原始地址:http://geniusvic.blog.hexun.com/56133580_d.html
一个 android 工程中,有各种类型的资源文件,大致可以分为以下几种:
1、 颜色 #RGB #ARGB #RRGGBB #AARRGGBB
颜色资源应该位于 <resourses></resourses> 标签下
路径 res/values/colors.xml 名字可以随意
定义 <color name=”cname”>value</color>
使用 Resourse.getValues.getColor
<? xml version = "1.0" encoding = "utf-8" ?>
< resources >
< color name = "white" > #FFFFFF </ color >
< color name = "black" > #000000 </ color >
</ resources >
2、 字串
字串资源应该位于 <resourses></resourses> 标签下
路径 res/values/strings.xml
定义 <String name=”sname”>value</String>
使用 Resourse.getValues.getString
<? xml version = "1.0" encoding = "utf-8" ?>
< resources >
< string name = "hello" > Hello World, ResrouseTestActivity! </ string >
< string name = "app_name" > ResrouseTest </ string >
</ resources >
3、 图片
图片资源一般使用 png 格式,使用其他格式 的会出现各种问题,貌似不支持 gif 格式的图片,可是使用 Movie 来播放 gif 格式的图片
路径 res/drawable
<? xml version = "1.0" encoding = "utf-8" ?>
< resources >
< drawable name = "solid_red" > #FF0000 </ drawable >
</ resources >
可以直接存放图片也可以是 xml 等配置文件(一般 用于自定义组件)
使用 getDrawable
4、 图片的颜色
位于 res/values/my_drawable.xml 名字随意
定义用于填充一个组件的颜色值,即给 view 设置背景色。用法和 drawable 下的图片 一样,其实没多少意义,使用颜色定义就 ok 了,目前我是这样认为的,可能有更好的优点,不过我没发现罢了,嘿嘿, continue...
5、 单位资源
单位资源应该位于 <resourses></resourses> 标签下
<? xml version = "1.0" encoding = "utf-8" ?>
< resources >
< dimen name = "dimen_name" > 2px </ dimen >
< dimen name = "dimen_px" > 5px </ dimen >
< dimen name = "dimen_pt" > 3pt </ dimen >
< dimen name = "dimen_dp" > 3dp </ dimen >
</ resources >
路径 res/values/dimen.xml 名字可以随意
使用和 String 、 color 类似
6、 Nine-patch (可以拉伸的小图片)
支持图片的拉伸
貌似就是所谓的 png 图片文件资源,图片 在应用 view 的背景时,如果被设为 background 则会 随 view 的大小变化做相应的拉伸和收缩,像 ImageView 这类设置 src 图片则不随 view 变化,按其自身大小显示部分或全部!
7、 菜单
菜单即可以从代码中实现也可以在资源文件中配置,这里就是要描述一下第二种
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/previous"
android:title="@string/previous"
android:enabled="false"
android:icon="@android:drawable/ic_media_previous"/>
<item
android:id="@+id/play_pause"
android:title="@string/play"
android:icon="@android:drawable/ic_media_play"/>
<item
android:id="@+id/next"
android:title="@string/next"
android:icon="@android:drawable/ic_menu_next"/>
</menu>
8、 Layout 布局
这个就是你经常看到的与用户交互的界面的 xml 文件,就是各个 view 的排列和嵌套,没 什么好说的啦
9、 风格和主题、
风格主要是指 view 的显示风格 res/values/filename.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<resources>
<style name=”SpecialText” parent=”@style/Text”>
<item name=”android:textSize”>18sp</item>
<item name=”android:textColor”>#008</item>
</style>
</resources>
主题主要针对 Activity 等 , 可以在 Android Manifest 中定义的 <application> 和 <activity> 元素将主题添加到整个程序或者某个 Activity ,但是主题是不能应用在某一个单独的 View 里 . 风格可以自己定义也可以使用程序自带的或是继承已有的风格。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomTheme">
<item name="android:windowNoTitle">true</item>
<item name="windowFrame">@drawable/screen_frame</item>
<item name="windowBackground">@drawable/screen_background_white</item>
<item name="panelForegroundColor">#FF000000</item>
<item name="panelBackgroundColor">#FFFFFFFF</item>
<item name="panelTextColor">?panelForegroundColor</item>
<item name="panelTextSize">14</item>
<item name="menuItemTextColor">?panelTextColor</item>
<item name="menuItemTextSize">?panelTextSize</item>
</style>
</resources>
10、 动画
动画资源分为两种,一是实现图片的 translate 、 scale 、 rotate 、 alpha 四种变化。还可以设置动画的播 放特性;另一种是帧动画,逐帧播放设置的资源
先说一下第一种
Res/anim/filename.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"
<translate android:interpolator="@android:anim/accelerate_interpolator"android:fromXDelta="0" android:toXDelta="200" android:fromYDelta="0"
android:toYDelta="180" android:duration="2000" />
<scale android:interpolator="@android:anim/accelerate_interpolator"
android:fromXScale="1.0" android:toXScale="2.0" android:fromYScale="1.0>
android:toYScale="2.0" android:pivotX="150%" android:pivotY="150%"
android:duration="2000" />
<alpha android:fromAlpha="1.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
<rotate ....
各个属性
/>
<Interpolator >
可以使用其子类和属性定义动画的运行方式,先快后慢,先慢后快等
/>
</set>
具体参数的用法,大家可以自己查资料
下面是第二种资源
<animation-list xmlns:android=”http://schemas.android.com/apk/res/android”
android:oneshot=”true”>
<item android:drawable=”@drawable/rocket_thrust1″ android:duration=”200″ />
<item android:drawable=”@drawable/rocket_thrust2″ android:duration=”200″ />
<item android:drawable=”@drawable/rocket_thrust3″ android:duration=”200″ />
</animation-list>
1. 相关文件夹介绍 在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的。assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的 文件不会像xml,java文件被预编译,可以存放一些图片,html,js, css等文件。在后面会介绍如何读取assets文件夹的资源!
res文件夹里面的多个文件夹的各自介绍(来自网上的Android开发指南中文版内容):
目录 Directory | 资源类型 Resource Types |
res/anim/ | XML 文件,它们被编译 进逐帧动画( frame by frame animation )或补间动画( tweened animation )对象 |
res/drawable/ | .png 、 .9.png 、 .jpg 文件,它们被编译进以下的 Drawable 资源子 类型中: 要获得这种类型的一个资源,可以使用 Resource.getDrawable(id ) 为了获取资源类型,使用 mContext.getResources().getDrawable(R.drawable.imageId) 注意: 放在这里的图像资源可能会被 aapt 工具自动地进行无损压缩优化。比如,一个真彩色但并不需要 256 色的 PNG 可能会被转换为一个带调色板的 8 位 PNG 。这使得同等质量的图片占用更少的资源。所以我们得意识到这些放在该目录下的二进制图像在生成时 可能会发生变化。如果你想读取一个图像位流并转 换成一个位图 (bitmap) ,请把图像文件放在 res/raw/ 目录下 , 这样可以避免被自动优化。 |
res/layout/ | 被编译为屏幕布局(或屏幕的一部分)的 XML 文件。 参见布局声明 (Declaring Layout) |
res/values/ | 可以被编译成很多种类型的资源的 XML 文件。 注意 : 尽管这个文件夹里的文件可以任意命名,不过下面使一些比较典型的文件(文件命名的惯例是将元素类 型包含在该名称之中):
|
res/xml/ | 任意的 XML 文件,在运行时可以通过调用 Resources.getXML() 读取。 |
res/raw/ res/assets/ | 直接复制到设备中的任意文件。它们无需编译,添加到你的应用程序编译产生的压缩文件中。 要使用这些资源,可以调用 Resources.openRawResource() ,参数是资源的 ID ,即 R.raw.somefilename 。assets下也可以放置任意文件,使用 Activity.this.getAssets().open("519.txt");打开 |