在应用程序开发中,需要访问定义好的资源,不论是通过代码还是通过XML文件。
本文主讲如何在代码中访问定义好的资源。
当Android app被编译,会生成一个R类,其中包含了所有res/目录下资源的id,所以我们可以使用R类,通过“子类+资源名id”的方式来访问资源。
实例1:
访问res/drawable/myimage.png,并将其设置到ImageView上:
//用R.id.myimageview来在布局文件中获取id定义为myimageview的ImageView
ImageView imageView = (ImageView) findViewById(R.id.myimageview);
//用R.drawable.myimage来获取res/的drawable子目录下名为myimage的图片
imageView.setImageResource(R.drawable.myimage);
实例2:
在id为msg的TextView对象上使用资源id来设置保存在string.xml文件中的文本:
TextView textview = (TextView) findViewById(R.id.msg);
textview.setText(R.string.hello);
实例3:
考虑如下定义的布局res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a Button" />
</LinearLayout>
为活动加载这个布局,onCreate()方法中如下:
public void onCreate(Buddle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}