Resources在Android体系中非常重要,常用的Resources有strings,colors,bitmaps和layouts等,你可以修改这些文件的值而不用去重新编译程序。在android中有非常多的resource类型,在这里我们主要讨论学习常用的类型。
- String Resources
android的strings文件放在res/values目录下面,你可以定义一个或多个XML文件来存放strings值,文件名可以随意取,不过经常情况下你看到的文件名是
strings.xml。
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">hello</string> <string name="app_name">hello appname</string> </resources>
在程序中使用时:R.string.hello;R.string.app_name。
- Layout Resources
在android中窗口的布局通常都是通过xml文件来完成的,文件一般放在res/layout目录下面。
public class HelloWorldActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView tv = (TextView)this.findViewById(R.id.text1); tv.setText("Try this text instead"); } ... }
代码中红色部分说明设置此Activity的view的布局文件是layout下的main.xml文件。
比如main.xml文件代码如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/text1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:id="@+id/b1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
- 引用Resources
Resource的引用语法结构是:@[package:]type/name。常用的
- R.string
- R.id
- R.drawable
- R.layout
- R.attr
- R.plural
- R.array
在res目录下有一些重要的文件类型目录我们需要知道:
- anim: 编译动画文件。
- drawable: Bitmaps.
- layout: 定义UI和view。
- values:Arrays,strings,colors,dimensions和styles。
- xml: xml文件。
- raw:Noncompiles raw files。
- String Arrays的用法
<resources ....> ......Other resources <string-array name="test_array"> <item>one</item> <item>two</item> <item>three</item> </string-array> ......Other resources </resources>
在代码中引用时:
//Get access to Resources object from an Activity Resources res = your-activity.getResources(); String strings[] = res.getStringArray(R.array.test_array);
- Plurals
<resources...> <plurals name="eggs_in_a_nest_text"> <item quantity="one">There is 1 egg</item> <item quantity="other">There are %d eggs</item> </plurals> </resources>
Resources res = your-activity.getResources(); String s1 = res.getQuantityString(R.plurals.eggs_in_a_nest_text, 0,0); String s2 = res.getQuantityString(R.plurals.eggs_in_a_nest_text, 1,1); String s3 = res.getQuantityString(R.plurals.eggs_in_a_nest_text, 2,2); String s4 = res.getQuantityString(R.plurals.eggs_in_a_nest_text, 10,10);
时间: 2024-10-21 20:01:40