ITEEDU

在代码中使用资源

只要知道资源的ID以及你编译进目标文件的资源类型就可以在代码里使用它来。下面是一些语法:

R.resource_type.resource_name

或者

android.R.resource_type.resource_name

resource_type是R子类的一种类型。 resource_name 是定义在XML文件里的资源名或者为其他文件类型定义的资源文件(没有后缀)名。 每种类型的资源会被加入到一个特定的R的子类中;为了学习哪种R的子类里有你编译的资源类型,参考资源引用 文档。被编译进应用程序的资源不需要 包的名字就可以直接被访问到(像这样:R.resource_type.resource_name). Android包含一些标准资源,如屏幕的类型,按钮的背景。要使用这些代码,你需要包含 android, 如 android.R.drawable.button_background.

这里有一些好的和糟糕的例子说明如何在代码里使用编译后的资源:

// 从画图资源类里装载一个当前屏幕背景。
this.getWindow().setBackgroundDrawableResource(R.drawable.my_background_image);

// 错误! 将一个资源ID装入一个需要字符串的方法中
this.getWindow().setTitle(R.string.main_title);

//正确!需要从资源封装类里取得标题。
this.getWindow().setTitle(Resources.getText(R.string.main_title));

// 从当前屏幕中装载布局数据。
setContentView(R.layout.main_screen);

//从ViewFlipper对象中设置动画中一帧 。
mFlipper.setInAnimation(AnimationUtils.loadAnimation(this, 
        R.anim.hyperspace_in));

// 在TextView对象中设置文本内容。	
TextView msgTextView = (TextView)findViewByID(R.id.msg);
msgTextView.setText(R.string.hello_message);