Android开发与实践-Android中的资源访问_第1页
Android开发与实践-Android中的资源访问_第2页
Android开发与实践-Android中的资源访问_第3页
Android开发与实践-Android中的资源访问_第4页
Android开发与实践-Android中的资源访问_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章Android中的资源访问3.1Android中资源目录结构Android中的资源是指非代码部分,例如,图片、音频、动画和字符串等就叫做Android中的资源文件。我们在创建一个Android工程时,和src源文件夹并列的有两个文件夹,分别叫做res和assets。这两个文件夹是用来保存资源文件的。在这两个文件夹中保存的文件有所不同,在assets中保存的一般是原生的文件,例如,一个MP3文件,Android程序不能直接访问,必须通过AssetManager类以二进制流的形式来读取。而res中的资源可以通过R资源类直接访问。assets中的资源很少用到,而res中的资源经常使用。如图3.1所示,在该工程中和src并列的有两个文件夹assets和res。res目录下又有anim,drawable,layout,menu,raw,values和xml文件夹,分别用来保存动画、图片、布局文件、菜单、原生文件、常量值和XML文件。3.1Android中资源目录结构3.1Android中资源目录结构本节我们将讲解如何创建资源文件,以及如何在代码中使用和如何在其他资源文件中引用该资源。在代码中我们使用Context的getResources()方法得到Resources对象,该对象提供了获得各种类型资源的方法。在其他资源中引用资源的一般格式是这样的:@【包名称:】资源类型/资源名称。例如,下面的代码是在布局文件中引用字符串资源、颜色资源和尺寸资源:

〈TextView

android:layout_width=“fill_parent”

android:layout_height=“wrap_content’android:text=“@string/styled_welcome_message”

androidtextColor=“@color/opaque_red”

androidtextSize=“@dimen/sixteen_sp”/〉3.1.1资源的类型和布局我们可以在工程的res目录下创建和保存各种不同类型的资源文件。这些资源文件要有一定的布局和格式。表3.1展示了Android中资源的布局和类型。3.1.2资源文件的使用资源文件的使用分为在代码中使用和在其他资源文件中引用该资源文件。在我们编译一个Android应用时,Android会自动生成一个R类,在该类中根据不同的资源类型又生成了相应的内部类,该类包含了系统中使用到的所有资源文件的标示,其内容如下所示。

packagecom.amaker.test;publicfinalclassR{//属性publicstaticfinalclassattr{

}//颜色publicstaticfinalclasscolor{publicstaticfinalintblue_text=0x7f050001;}3.1.2资源文件的使用//图片publicstaticfinalclassdrawable{publicstaticfinalintedit=0x7f020000;}//ID表示publicstaticfinalclassid{publicstaticfinalintButton01=0x7f090005;}//布局publicstaticfinalclasslayout{publicstaticfinalintmain=0x7f030000;

}//数组publicstaticfinalclassstring{publicstaticfinalintapp_name=0x7f070000;}}3.1.2资源文件的使用1.在代码中使用资源文件在代码中访问资源文件,我们是通过使用R资源类中定义的资源文件类型和资源文件名称来访问的。具体格式为:R.资源文件类型.资源文件名称。例如:

//设置Activity显示的布局视图setContentView(R.layout.main);//获得Textview实例et1=(EditText)findViewById(R.id.name);et2=(EditText)findViewById(R.id.like);//获得Button实例b=(Button)findViewById(R.id.add);3.1.2资源文件的使用另外,除了访问用户自己定义的资源文件,还可以访问系统中的资源文件。大部分的资源文件被定义在android包下的R类中。访问系统中的资源文件格式为:android.R.资源文件类型.资源文件名称。例如:

int

i;//动画

i=android.R.anim.fade_in;//数组

i=android.R.array.emailAddressTypes;//颜色

i=android.R.color.darker_gray;

//尺寸

i=android.R.dimen.app_icon_size;

3.2使用颜色资源3.2.1颜色值定义颜色值的定义是通过RGB三原色和一个alpha值来定义的。颜色值定义的开始是一个井号(#),后面是Alpha-Red-Green-Blue的格式。例如:#RGB#ARGB#RRGGBB#AARRGGBB3.2使用颜色资源3.2.2颜色资源XML文件的定义下面通过一个表格来展示颜色资源XML文件的定义,如表3.2所示。

3.2使用颜色资源

下面通过一个实例来演示颜色资源的使用,本实例的功能是定义两个颜色资源:红色背景和蓝色文字。实例步骤说明如下。(1)定义一个名称为"Chapter03_Resource”的Android工程,在该工程的res\values\目录下,定义一个colors.xml颜色资源文件,内容如下所示。<?xmlversion="1.0"encoding="utf-8"?><resources><colorname="red_bg">#f00</color><colorname="blue_text">#0000ff</color></resources>3.2使用颜色资源(2)在该工程的res\layout目录下定义一个布局资源文件,在该文件中添加一个TextView视图组件,引用颜色资源,设置视图组件TextView的文字颜色为蓝色。<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:text="测试颜色资源,红色背景,蓝色文字"

android:id="@+id/TextView01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="@color/blue_text"/>

</LinearLayout>3.2使用颜色资源(3)定义一个TestColorActivity类,引用颜色资源文件,设置背景色为红色。packagecom.amaker.ch03.color;importandroid.app.Activity;importandroid.os.Bundle;importcom.amaker.test.R;publicclassTestColorActivityextendsActivity{publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceSate);

setContentView(R.layout.test_color);

//引用颜色资源,设置背景色为红色getWindow().setBackgroundDrawableResource(R.color.red_bg);

}}3.2使用颜色资源(4)运行程序,结果如图3.2所示。3.3使用字符串(string)资源在一个Android工程中,我们可能会使用到大量的字符串作为提示信息。这些字符串都可以作为字符串资源声明在配置文件中,从而实现程序的可配置性。在代码中我们使用Context.getString()方法,通过传递资源ID参数来得到该字符串,也可以在其他资源文件中引用字符串资源,引用格式为@String/字符串资源名称。3.31字符串资源XML文件的定义我们通过表3.3来说明字符串资源是如何定义的,包括资源的位置、XML文件的格式、获得资源的方法和引用资源的方法等。

3.3.2字符串资源XML文件的使用

下面将通过一个实例来演示资源文件的用法。在该实例中用到两个字符串资源:一个在布局文件中引用;另一个在Java代码中引用。实例步骤如下。(1)在该工程的res\values\目录下,创建一个字符串资源文件strings.xml,内容如下所示:<?xmlversion="1.0"encoding="utf-8"?><resources><stringname="app_name">TestResources</string>

<stringname="test_str1">从代码中引用!</string>

<stringname="test_str2">从资源文件引用!</string>

</resources>

3.3.2字符串资源XML文件的使用

(2)在该工程的res\layoutl目录下,定义一个布局文件test_string.xml。在该布局文件中添加两个TextView视图对象:第一个TextView的文本内容直接引用strings.xml文件中的资源;第二个TextView的文本内容在代码中设置。<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent">

3.3.2字符串资源XML文件的使用

<TextViewandroid:text="@string/test_str1"android:id="@+id/myTextView01"android:layout_width="wrap_content"android:layout_height="wrap_content"/>

<TextViewandroid:text=""android:id="@+id/myTextView02"android:layout_width="wrap_content"android:layout_height="wrap_content"/>

</LinearLayout>3.3.2字符串资源XML文件的使用

(3)在工程的com.amaker.ch03.string包中,创建一个TestStringActivity类。在该类的onCreate()方法中,设置当前的视图布局,并获得TextView实例。通过Context.getString()方法,从字符串资源中获得字符串常量,并将其设置为TextView的文本内容。packagecom.amaker.ch03.string;importandroid.app.Activity;importandroid.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论