在Android中,大量的数据和配置信息以资源的方式存在,理解资源对进行Android应用开发具有十分重要的意义。
        对于字符串资源,通常应放置在res/values/目录下,以XML文件保存。
对于音频、视频资源,通常应放置在res/raw目录下。
对于应用布局信息,通常应放置在res/layout目录下,以XML文件保存。
对于图像资源,通常应放置在res/drawable目录下。如果需要对图像进行配置,则可以利用XML文件进行配置。
对于菜单资源,通常应放置在res/menu目录下。下面是一个包含了子菜单的菜单的资源文件实现:
< menu xmlns:android="//schemas.android.com/apk/res/android">
        < item android:title="Normal 1" />
        < item android:id="@+id/submenu"android:title="Emotions">	
            < menu>        
                < item android:id="@+id/happy"android:title="Happy"android:icon="@drawable/stat_happy" />
                < item android:id="@+id/neutral"android:title="Neutral"android:icon="@drawable/stat_neutral" />
                < item android:id="@+id/sad"android:title="Sad"android:icon="@drawable/stat_sad" />
            < /menu>
        < /item>
        < item android:title="Normal 2" />
    < /menu>
    下面是一个选项菜单加载的过程:
    public boolean onCreateOptionsMenu(Menu menu) 
        {
           super.onCreateOptionsMenu(menu);
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.browser, menu);
    }
    执行菜单选择的过程如下:
    public boolean onOptionsItemSelected(MenuItem item) 
        {
	        switch (item.getItemId())
            {
		            case R.id. happy:
		            ……
		            return true;
		            case R.id. neutral:
		            ……
		            return true;
		            Case R.id. sad:
		            ……
		            return true;
		            default:
                    return false;
	        }
    }
如果是动态菜单,在菜单显示前,可以在onPrepareOptionsMenu(Menu menu)预先做一判断。当然也可以直接通过代码实现菜单,方法如下:
public boolean onCreateOptionsMenu(Menu menu)
     {
      menu.add(0, DISPLAY_MODE_LAUNCH, 0, R.string.quick_launch_display_mode_applications)
                        .setIcon(com.android.internal.R.drawable.ic_menu_archive);
      menu.add(0, DISPLAY_MODE_SHORTCUT, 0, R.string.quick_launch_display_mode_shortcuts)
                        .setIcon(com.android.internal.R.drawable.ic_menu_goto);
       return true;
    }
对于动态效果资源,通常应放置在res/anim目录下。下面是一个动态效果的实现:
< set xmlns:android="//schemas.android.com/apk/res/android"
                android:interpolator="@android:anim/decelerate_interpolator">
        < scale android:fromXScale="2.0" android:toXScale="1.0"
                   android:fromYScale="2.0" android:toYScale="1.0"
                   android:pivotX="50%p" android:pivotY="50%p"
                   android:duration="@android:integer/config_mediumAnimTime" />
	    < /set>
动画效果常用的场景不多,在Activity加载或者退出时,会用到动画效果,另一个比较常用的场景是ViewSwitcher\ ViewFlipper。下面是ViewSwitcher设置动画效果的方法:
mViewSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.push_up_in));
    mViewSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.push_up_out));
Android在示例中提供了数十个动态效果的示例,开发者可以直接复制即可在自己的代码中引用。
对于< key,value>数据和app widget提供器等资源,通常放置在res/xml目录下。另一个比较常见的放置在res/xml目录下的资源文件是配置文件。下面是Android示例中的一个配置文件:
< PreferenceScreen
        xmlns:android="//schemas.android.com/apk/res/android">
        < CheckBoxPreference	
			
                    android:key="default_toggle"
                    android:defaultValue="true"
                    android:title="@string/title_checkbox_preference"
                    android:summary="@string/summary_checkbox_preference" />
        < EditTextPreference
                    android:key="default_edittext"
                    android:defaultValue="@string/default_value_edittext_preference"
                    android:title="@string/title_edittext_preference"
                    android:summary="@string/summary_edittext_preference"
                    android:dialogTitle="@string/dialog_title_edittext_preference" />
        < ListPreference
                    android:key="default_list"
                    android:defaultValue="@string/default_value_list_preference"
                    android:title="@string/title_list_preference"
                    android:summary="@string/summary_list_preference"
                    android:entries="@array/entries_list_preference"
                    android:entryValues="@array/entryvalues_list_preference"
                    android:dialogTitle="@string/dialog_title_list_preference" />
    < /PreferenceScreen>
在代码中加载配置文件的方法如下:
public void onCreate()
     {
	        PreferenceManager.setDefaultValues(this, R.xml.default_values, false);
    }
Android的资源文件内容丰富,尤其是布局文件,往往需要丰富的经验才能写出考虑周详的代码。