您的位置:华清远见教育科技集团 >> 新闻动态 >> Android资料 >> Android Resources资源  
 
Android Resources资源
分享到:

在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的资源文件内容丰富,尤其是布局文件,往往需要丰富的经验才能写出考虑周详的代码。

 更多相关文章

·Android Data Storage
·Android Content Providers
·Android App Widgets开发
·Android Intent激活组件
·Android Broadcast的使用