安卓中的资源访问分为以下两个部分:
assets:存放原生资源 一般很少访问 需要通过AssetManage类以二进制的形式来读取
res:通过R资源类直接访问(anim drawable layout menu raw values xml dimen 动画 图片 布局 菜单 原生文件 常量 xml文件 尺寸)
R类---自动生成的代码
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package com.qd.weibo;
public final class R {
public static final class attr {
}
public static final class dimen {
public static final int activity_horizontal_margin = 0x7f040000;
public static final int activity_vertical_margin = 0x7f040001;
}
public static final class drawable {
public static final int ic_launcher = 0x7f020000;
}
public static final class id {
public static final int action_settings = 0x7f080000;
}
public static final class layout {
public static final int activity_main = 0x7f030000;
}
public static final class menu {
public static final int main = 0x7f070000;
}
public static final class string {
public static final int action_settings = 0x7f050001;
public static final int app_name = 0x7f050000;
public static final int hello_world = 0x7f050002;
}
public static final class style {
public static final int AppBaseTheme = 0x7f060000;
public static final int AppTheme = 0x7f060001;
}
}
在资源文件中引用资源的格式一般是@[包名称:]资源类型/资源名称
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
在代码中引用资源文件 格式为 R.资源文件类型.资源文件名称
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
除了自定义的资源外还可以访问系统中的资源文件,大部分的资源文件存放在android包下的R类中.
访问格式为: android.R.资源文件类型.资源文件名称
int i=android.R.anim.fade_in;
颜色资源文件的定义 res/values/colors.xml Resources.getColor();
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name='red'>#FF0000</color>
</resources>
字符串资源文件的定义 res/values/strings.xml Resources.getString();
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Weibo</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
</resources>
使用原始XML资源文件 定义在res/xml/filename.xml Resources.getXML();
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<customer name='tom' age='20' gender='male' email='tom@163.com'/>
<customer name='kite' age='21' gender='male' email='kite@163.com'/>
</resources>
drawable资源是一些图片或者颜色资源主要用来绘制屏幕 Resoueces.getDrawable()方法获得
菜单资源文件 res/menu/filename.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:title="File">
<menu>
<group
android:id="@+id/nonchechable_group"
android:checkableBehavior="none" >
<item
android:id="@+id/newFile"
android:alphabeticShortcut="n"
android:title="New"/>
<item
android:id="@+id/openFile"
android:alphabeticShortcut="o"
android:title="Open"/>
<item
android:id="@+id/saveFile"
android:alphabeticShortcut="s"
android:title="Save"/>
</group>
</menu>
</item>
<item android:title="Edit">
<menu>
<group
android:id="@+id/editor_group"
android:checkableBehavior="single" >
<item
android:id="@+id/cut"
android:title="Cut"/>
<item
android:id="@+id/copy"
android:title="Copy"/>
<item
android:id="@+id/Past"
android:title="Past"/>
</group>
</menu>
</item>
<item android:title="Help">
<menu>
<group android:id="@+id/help_group" >
<item
android:id="@+id/about"
android:title="About"/>
<item
android:id="@+id/exit"
android:title="Exit"/>
</group>
</menu>
</item>
</menu>
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}