资源访问

Android中的资源是指可以在代码中使用的外部文件,这些文件作为应用程序的一部分,被编译到应用程序中。在Android中,各种资源都被保存到Android应用的res目录下对应的子目录中,这些资源既可以在Java文件中使用,也可以在其他XML资源中使用。

字符串(string)资源

在Android中,当需要使用大量的字符串作为提示信息时,可以将这些字符串声明在配置文件中,从而实现程序的可配置性。

定义字符串资源文件

字符串资源文件位于res\values目录下,根元素是 标记,在该元素中,使用标记定义各字符串。其中,通过为标记设置name属性来指定字符串的名称, 在起始标记和结束标记中间添加字符串的内容。
例如,在Android项目中,创建一个名称为strings.xml的字符串资源文件,在该文件中定义一个名称为introduce的字符串,内容是公司简 介,strings.xml的具体代码如下:

<resources> 
	<string name="introduce">电子商务网站</string> 
</resources>

说明: 在Android中,资源文件的文件名不能采用大写字母,必须是以小写字母az开头,由小写字母az、数字0~9或者下划线“_”组成。

使用字符串资源

在字符串资源文件中定义字符串资源后,就可以在Java或XML文件中使用该字符串资源了。在Java文件中使用字符串资源的语法格式如下:
[.]R.string.字符串名

例如,在MainActivity中,要获取名称为introduce的字符串,可以使用下面的代码:
getResources().getString(R.string.introduce )

在XML文件中使用字符串资源的基本语法格式如下:
@[:]string/字符串名

例如,在定义TextView组件时,通过字符串资源为其指定android:text属性的代码如下:

<TextView android:layout_width=" wrap_content" 
	android:layout_height="wrap_content" 
	android:text="@string/introduce" />

颜色(color)资源

颜色资源也是进行Android应用开发时比较常用的资源,它通常用于设置文字、背景的颜色等。

颜色值的的定定义

在Android中,颜色值通过RGB(红、绿、蓝)三原色和一个透明度(Alpha)值表示。它必须以 “#”开头,后面接Alpha-Red-Green-Blue形式的内容。其中,Alpha值可以省略,如果省略,表示颜色默认是完全不透 明的。通常情况下,颜色值使用以下4种形式之一。

[√]#RGB:使用红、绿、蓝三原色的值来表示颜色,其中,红、绿和蓝采用0~f来表示。例如,要表示红色,可以使用#f00。
[√]#ARGB:使用透明度以及红、绿、蓝三原色来表示颜色,其中,透明度、红、绿和蓝均采用0~f来表示。例如,要表示半透明的红色,可以使用#6f00。
[√]#RRGGBB:使用红、绿、蓝三原色的值来表示颜色,与#RGB不同的是,这里的红、绿和蓝使用00~ff来表示。例如,要表示蓝色,可以使用#0000ff。
[√]#AARRGGBB:使用透明度以及红、绿、蓝三原色来表示颜色,其中,透明度、红、绿和蓝均采用00~ff来表示。例如,要表示半透明的绿色,可以使用#6600ff00。

定义颜色资源文件

颜色资源文件位于res\values目录下,根元素是标记,在该元素中,使用标记定义各颜色资源,其中,通过为标记设置name属性来指定颜色资源的名称, 在起始标记和结束标记中间添加颜色值。

例如,在Android项目中,创建一个名称为colors.xml的颜色资源文件,在该文件中定义4个颜色资源,其中第1个名称为title,颜色值采用#AARRGGBB格 式;第2个名称为title1,颜色值采用#ARGB格式,这两个资源都表示半透明的红色;第3个名称为content,颜色值采用#RRGGBB格式;第4个名称为content1,颜色值采用#RGB格式,这两个资源都表示完全不透明 的红色。colors.xml的具体代码如下

<resources> 
	<color name="title">#66ff0000</color> 
	<color name="title1">#6f00</color> 
	<color name="content">#ff0000</color> 
	<color name="content1">#f00</color> 
</resources>

使用颜色资源

在颜色资源文件中定义颜色资源后,就可以在Java或XML文件中使用该颜色资源了。在Java文件中使用颜色资源的语法格式如下:
[.]R.color.颜色资源名

例如,在MainActivity中,通过颜色资源为TextView组件设置文字颜色,可以使用下面的代码:
TextView tv=(TextView)findViewById(R.id.title); tv.setTextColor(getResources().getColor(R.color.title1) );

在XML文件中使用颜色资源的基本语法格式如下:
@[:]color/颜色资源名

例如,在定义TextView组件时,通过颜色资源为其指定android:textColor属性,即设置组件内文字的颜色,代码如下:

<TextView android:layout_width=" wrap_content " 
	android:layout_height="wrap_content" 
	android:textColor="@color/title" />

尺寸(dimen)资源

尺寸资源也是进行Android应用开发时比较常用的资源,它通常用于设置文字的大小、组件的间距等。

Android支持的尺寸单位

在Android中,支持的常用尺寸单位如下:
[√]px(Pixels,像素):每个px对应屏幕上的一个点。例如,320×480的屏幕在横向有320个像素,在纵向有480个像素。
[√]in(Inches,英寸):标准长度单位。每英寸等于2.54厘米。例如,形容手机屏幕大小,经常说3.2(英)寸、3.5(英)寸、4(英)寸就是指这个单位。这些尺寸是屏幕对角线的长度。如果手机的屏幕是4英寸,表 示手机的屏幕(可视区域)对角线长度是4×2.54 = 10.16厘米。
[√]pt(points,磅):屏幕物理长度单位,1磅为1/72英寸。

[√]dip或db(设置独立像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dip=1px。但随着屏幕密度的改变,dip与px的换算也会发生改变。
[√]sp(比例像素):主要处理字体的大小,可以根据用户字体大小首选项进行缩放。
[√]mm(Millimeters,毫米):屏幕物理长度单位。

定义尺寸资源文件

尺寸资源文件位于res\values目录下,根元素是标记,在该元素中,使用标记定义各尺寸资源,其中,通过为标记设置name属性来指定尺寸资源的名 称,在起始标记和结束标记中间定义一个尺寸常量。例如,在Android项目中,创建一个名称为dimens.xml的尺寸资源文件,在该文件中定义两个尺寸资源,其中一个名称为title,尺寸值是24px; 另一个名称为content,尺寸值是14dp。dimens.xml文件的具体代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources> 
	<dimen name="title">24px</dimen> 
	<dimen name="content">14dp</dimen> 
</resources>

使用尺寸资源

在尺寸资源文件中定义尺寸资源后,就可以在Java或XML文件中使用该尺寸资源了。在Java文件中使用尺寸资源的语法格式如下:
[.]R.color.尺寸资源名

例如,在MainActivity中,通过尺寸资源为TextView组件设置文字大小,可以使用下面的代码:
TextView tv=(TextView)findViewById(R.id.title);
tv.setTextSize(getResources().getDimension(R.dimen.title) );

在XML文件中使用尺寸资源的基本语法格式如下:

@[:]dimen/尺寸资源名
例如,在定义TextView组件时,通过尺寸资源为其指定android:textSize属性,即设置组件内文字的大小,代码如下:

布局(Layout)资源

布局资源是Android中最常用的一种资源,这里不再详细介绍布局管理器的知识, 只对如何使用布局资源进行简单的归纳。

在Android中,将布局资源文件放置在res\layout目录下,布局资源文件的根元素通常是各种布局管理器,在该布局管理器中,通常是各种View组件或是嵌套的其他布局管理器。例如,在应用Eclipse创建一个 Android应用时,默认创建的布局资源文件main.xml中,就是一个垂直的线性布局管理器,其中包含一个TextView组件。

布局文件创建完成后,可以在Java代码或是XML文件中使用。在Java代码中,可以通过下面的语法格式访问布局文件

[.]R.layout.<文件名>

例如,在MainActivity的onCreate()方法中,可以通过下面的代码指定该Activity应用的布局文件为main.xml。

setContentView(R.layout.main);

在XML文件中,可以通过下面的语法格式访问布局资源文件:

@[:]layout.文件名

例如,如果要在一个布局文件main.xml中包含另一个布局文件image.xml,可以在main.xml文件中使用下面的代码:

数组(array)资源

同Java一样,Android中也允许使用数组。但是在Android中,不推荐在Java程序中定义数组,而是推荐使用数组资源文件来定义数组。

定义数组资源文件

数组资源文件位于res\values目录下,根元素是标记,在该元素中,包括以下3个子元素。
[√]子元素:用于定义普通类型的数组。
[√]子元素,用于定义整数数组。
[√]子元素,用于定义字符串数组。 无论使用上面3个子元素中的哪一个,都可以使用name属性定义数组名称,并且在起始标记和结束标记中间使用标记定义数组中的元素。例如,要定义一个名称为list Item.xml的数组资源文 件,并在该文件中添加一个名称为listItem、包括3个数组元素的字符串数组,可以使用下面的代码:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
	<string-array name="listItem">
		<item>程程序序管管理理</item> 
		<item>邮件设置</item> 
		<item>保保密密设置</item> 
	</string-array> 
</resources>

使用数组资源

在数组资源文件中定义数组资源后,就可以在Java或XML文件中使用该数组资源了。在Java文件中使用数组资源的语法格式如下:

[.]R.array.数组名

例如,在MainActivity中,要获取名称为listItem的字符串数组,可以使用下面的代码:

String[] arr=getResources().getStringArray(R.array.listItem );

在XML文件中使用数组资源的基本语法格式如下: @[:]array/数组名

例如,在定义ListView组件时,通过字符串数组资源为其指定android:entries属性的代码如下:

<ListView 
	android:id="@+id/listView1" 
	android:entries="@array/listItem" 
	android:layout_width="match_parent" 
	android:layout_height="wrap_content" > 
</ListView>

Drawable资源

Drawable资源是Android应用中使用最广泛、灵活的资源。它不仅可以直接使用图片作为资源,而且可以使用多种XML文件作为资源,只要XML文件可以被系统编译成Drawable子类的对象,那么该XML文 件就可以作为Drawable资

说明:Drawable资源通常保存在res\drawable目录中,实际上是保存在res\drawable-hdpi、res\drawable-ldpi、res\drawable-mdpi目录下。其中,res\drawable-hdpi保存的是高分辨率的图片;res\drawable-ldpi保存的是 低分辨率的图片;res\drawable-mdpi保存的是中等分辨率的图片。

图片资源

在Android中,不仅可以将扩展名为.png、.jpg和.gif的普通图片作为图片资源,而且可以将扩展名为.9.png的9-Patch图片作为图片资源。扩展名为.png、.jpg和.gif的普通图片较常见,它们通常是通过绘图软件 完成的,下面来对扩展名为.9.png的9-Patch图片进行简要介绍。

9-Patch图片是使用Android SDK中提供的工具Draw 9-patch生成的,该工具位于Android SDK安装目录下的tools目录中,双击draw9patch.bat即可打开该工具。使用该工具可以生成一个可以伸缩的标准PNG 图像,Android会自动调整大小来容纳显示的内容。通过Draw9-patch生成扩展名为.9.png的图片的具体步骤如下。

(1)打开Draw9-patch,选择工具栏中的File/Open 9-patch命令,如图所示。

(2)在打开的“打开”对话框中,选择要生成9-Patch图片的原始图片,这里选择名称为mrbiao.png的图片。

说明:在图片的四周多了一圈一个像素的可操作区域,在该可操作区域上单击,可以绘制一个像素的黑线,水平方向黑线与垂直方向黑线的交集为可缩放区域,在已经绘制的黑线上单击鼠标右键(或者按 下Shift键后单击),可以清除已经绘制的内容。

(3)在打开的图片上定义如图所示的可缩放区域和内容显示区域。

(4)选择菜单栏中的File/Save 9-patch命令,保存9-Patch图片,这里将其命名为mrbiao.9.png。 (5)生成扩展名为.9.png的图片后,就可以将其作为图片资源使用了。9-Patch图片通常用作背景。与普通图片不同的是,使用9-Patch图片作为屏幕或按钮的背景时,当屏幕尺寸或者按钮大小改变时,图片 可自动缩放,达到不失真效果。如图8所示就是在模拟器中使用9-Patch图片和普通PNG图像作为按钮背景时的效果。

在了解了可以作为图片资源的图像后,下面来介绍如何使用图片资源。在使用图片资源时,首先将准备好的图片放置在res\drawable-xxx目录中,然后就可以在Java或XML文件中访问该资源了。在Java代码 中,可以通过下面的语法格式访问图片。

[.]R.drawable.<文件名>

注意: Android中不允许图片资源的文件名中出现大写字母,且不能以数字开头。

例如,在MainActivity中,通过图片资源为ImageView组件设置要显示的图片,可以使用下面的代码

ImageView iv=(ImageView)findViewById(R.id.imageView1); iv.setImageResource(R.drawable.head );

在XML文件中,可以通过下面的语法访问图片资源:
@[:]drawable/文件名

例如,在定义ImageView组件时,通过图片资源为其指定android:src属性,也就是设置要显示的图片,具体代码如下:

<ImageView android:id="@+id/imageView1" 
	android:layout_width="wrap_content" 
	android:layout_height="wrap_content" 
	android:src="@drawable/head" />

说明:在Android应用中,使用9-Patch图片时不需要加扩展名.9.png。例如,要在XML文件中使用一个名称为mrbiao.9.png的9-Patch图片,可以使用@drawable/mrbiao。

StateListDrawable资源

StateListDrawable资源是定义在XML文件中的Drawable对象,能根据状态来呈现不同的图像。例如,一个Button组件存在多种不同的状态(pressed、enabled或focused等),使用StateListDrawable资源可以为按钮 的每个状态提供不同的按钮图片。

StateListDrawable资源文件同图片资源一样,也是放在res\drawable-xxx目录中。StateListDrawable资源文件的根元素为,在该元素中可以包括多个元素。每个Item元素可以设 置以下两个属性。
[√]android:color或android:drawable:用于指定颜色或Drawable资源。
[√]android:state_xxx:用于指定一个特定的状态。

状态属性 描述
android:state_active 表示是否处于激活状态,属性值为true或false
android:state_checked 表示是否处于选中状态,属性值为true或false
android:state_enabled 表示是否处于可用状态,属性值为true或false
android:state_first 表示是否处于开始状态,属性值为true或false
android:state_focused 表示是否处于获得焦点状态,属性值为true或false
android:state_last 表示是否处于结束状态,属性值为true或false
android:state_middle 表示是否处于中间状态,属性值为true或false
android:state_pressed 表示是否处于被按下状态,属性值为true或false
android:state_selected 表示是否处于被选择状态,属性值为true或false
android:state_window_focused 表示窗口是否已经得到焦点状态,属性值为true或false

创建一个StateListDrawable资源后,可以将该文件放置在res\drawable-xxx目录下,然后在相应的组件中使用该资源即可。例如,要在编辑框中使用名称为edittext_focused.xml的StateListDrawable资源,可以使 用下面的代码:

样式(style)和主题(theme)资源

在Android中,提供了用于对Android应用进行美化的样式和主题资源,使用这些资源可以开发出各种风格的Android应用。

样式资源

样式资源主要用于对组件的显示样式进行控制,如改变文本框显示文字的大小和颜色等。样式资源文件放置在res\values目录中,其根元素是标记,在该元素中,使用标记中,可以包括多个 标记。

例如,在Android项目中,创建一个名称为styles.xml的样式资源文件,在该文件中定义一个名称为title的样式,在该样式中,定义两个样式,一个是设置文字大小的样式,另一个是设置文字颜 色的样式,styles.xml的具体代码如下:

<resources> 
	<style name="title"> 
		<item name="android:textSize">48px</item> 
		<item name="android:textColor">#f60</item> 
	</style> 
</resources>

在Android中,还支持继承样式的功能,只需要在标记中使用parent属性进行设置即可。例如,定义一个名称为basic的样式,然后定义一个名称为title的样式,并让该样式继承basic样式,关键代 码如下:

<resources> 
	<style name="basic"> 
		<item name="android:textSize">48px</item> 
		<item name="android:textColor">#f60</item> 
	</style> 
	
	<style name="title" parent="basic" > 
		<item name="android:padding">10px</item> 
		<item name="android:gravity">center</item> 
	</style> 
</resources>

说明:当一个样式继承另一个样式后,如果在该子样式中,出现了与父样式相同的属性,将使用子样式中定义的属性值。

在样式资源文件中定义样式资源后,就可以在XML文件中使用该样式资源了,其基本语法格式如下:

@[:]style/样式资源名

例如,在定义TextView组件时,使用名称为title的样式资源为其定义样式,可以使用下面的代码:

<TextView android:id="@+id/textView1" 
	style="@style/title" 
	android:layout_width="match_parent" 
	android:layout_height="wrap_content" 
	android:text="TextView" />

主题资源

主题资源与样式资源类似,定义主题资源的资源文件也是保存在res\values目录中,其根元素同样是标记,在该标记中,也是使用标记定义主题。所不同的是,主题资源 不能作用于单个的View组件,而是对所有(或单个)Activity起作用。通常情况下,主题中定义的格式都是为改变窗口外观而设置的。例如,要定义一个用于改变所有窗口背景的主题,可以使用下面的代码:

<resources> 
	<style name="bg" > 
		<item name="androidwindowBackground">@drawable/background</item> 
	</style> 
</resources>

主题资源定义完成后,就可以使用该主题了。在Android中,提供了以下两种使用主题资源的方法。
[√]在AndroidManifest.xml文件中使用主题资源 在AndroidManifest.xml文件中使用主题资源比较简单,只需要使用android:theme属性指定要使用的主题资源即可。例如,要使用名称为bg的主题资源,可以使用下面的代码:

android:theme="@style/bg

android:theme属性是AndroidManifest.xml文件中标记和标记的共有属性,如果要使用的主题资源作用于项目中的全部Activity上,可以使用 标记的android:theme属性,也就是为标记添加android:theme属性,关键代码如下:

如果要使用的主题资源作用于项目中的指定Activity上,那么可以在配置该Activity时,为其指定android:theme属性,关键代码如下:

说明: 在Android应用中,android:theme属性值还可以使用Android SDK提供的一些主题资源,这些资源我们只需使用即可。例如,使用android:theme="@android:style/Theme.NoTitleBar"后,屏幕上将不显示标题 栏。

[√]在Java文件中使用主题资源 在Java文件中也可以为当前的Activity指定使用的主题资源,这可以在Activity的onCreate()方法中通过setTheme()方法实现,例如,下面的代码就是指定当前Activity使用名称为bg的主题资源。

@Override 
public void onCreate(Bundle savedInstanceState) { 
	super.onCreate(savedInstanceState); 
	setTheme(R.style.bg); 
	setContentView(R.layout.main); 
}

注意:在Activity的onCreate()方法中设置使用的主题资源时,一定要在为该Activity设置布局内容前设置(也就是在setContentView()方法之前设置),否则将不起作用。

使用bg主题资源后,运行默认的MainActivity时,屏幕的背景不再是默认的黑色。

原始XML资源

在定义资源文件时,使用的也是XML文件,这些文件不属于本节要介绍的原始XML资源。这里所说的原始XML资源,是指一份格式良好的、没有特殊要求的普通XML文件。它一般保存在res\xml目录(在 创建Android项目时,没有自动创建xml目录,需要手动创建)中,通过Resources.getXml()方法来访问。

实现从保存客户信息的XML文件中读取客户信息并显示。

(1)修改新建项目的res\layout目录下的布局文件main.xml,为默认添加的TextView组件设置文字大小、id属性以及默认显示的文本,关键代码如下:

<TextView android:id="@+id/show" 
	android:textSize="28px" 
	android:layout_width="match_parent" 
	android:layout_height="wrap_content" 
	android:text="正在读取XML文件..." />

(2)在res目录中,创建一个名称为xml的目录,然后在该目录中创建一个名称为customers.xml的文件,在该文件中,添加一个名称为customers的根节点,并在该节点中添加3个customer子节点,用于保存客户 信息。customers.xml文件的具体代码如下:

<?xml version="1.0" encoding="utf-8"?> 
<customers> 
	<customer name="wgh" tel="1363*******" email="wgh8007@163.com"/> 
	<customer name="mr" tel="0431-84******" email="mingrisoft@mingirsoft.com"/> 
	<customer name="sk" tel="130********" email="sk666888@sina.com" /> 
</customers>

(3)打开默认创建的MainActivity,在onCreate()方法中,首先获取XML文档,然后通过while循环(循环的条件是不能到文档的结尾)对该XML文档进行遍历,在遍历时,首先判断是否为指定的开始标记,如 果是则获取各属性,否则遍历下一个标记,一直遍历到文档的结尾,最后获取显示文本框,并将获取的结果显示到该文本框中。关键代码如下:

XmlResourceParser xrp=getResources().getXml(R.xml.customers); //获取XML文档 
StringBuilder sb=new StringBuilder(""); //创建一个空的字符串构建器 
try {
	//如果没有到XML文档的结尾处 
	while(xrp.getEventType()!=XmlResourceParser.END_DOCUMENT){ 
		if(xrp.getEventType()==XmlResourceParser.START_TAG){ //判断是否为开始标记 
			String tagName=xrp.getName(); //获取标记名 
			if(tagName.equals("customer")){ //如果标记名是customer 
				sb.append("姓名:"+xrp.getAttributeValue(0)+" "); //获取客户姓名 
				sb.append("联系电话:"+xrp.getAttributeValue(1)+" "); //获取联系电话 
				sb.append("E-mail:"+xrp.getAttributeValue(2)); //获取E-mail 
				sb.append("\n"); //添加换行符 
			} 
		}
		xrp.next(); //下一个标记 
	}
	
	TextView tv=(TextView)findViewById(R.id.show); //获取显示文本框 
	tv.setText(sb.toString()); //将获取到的XML文件的内容显示到文本框中 
} catch (XmlPullParserException e) { 
	e.printStackTrace(); 
} catch (IOException e) { 
	e.printStackTrace(); 
}

菜单(menu)资源

在桌面应用程序中,菜单的使用十分广泛。但是在Android应用中,菜单减少了不少。不过Android中提供了两种实现菜单的方法,分别是通过Java代码创建菜单和使用菜单资源文件创建菜单,Android推荐 使用菜单资源来定义菜单,下面进行详细介绍。

定义菜单资源文件

菜单资源文件通常放置在res\menu目录下,在创建项目时,默认是不自动创建menu目录的,所以需要手动创建。菜单资源的根元素通常是

标记,在该标记中可以包含以下两个子元素。
[√]标记:用于定义菜单项,可以通过如表8.2所示的各属性来为菜单项设置标题等内容

属性 描述
android:id 用于为菜单项设置ID,也就是唯一标识
android:title 用于为菜单项设置标题
android:alphabeticShortcut 用于为菜单项指定字符快捷键
android:numericShortcut 用于为菜单项指定数字快捷键
android:icon 用于为菜单项指定图标
android:enabled 用于指定该菜单项是否可用
android:checkable 用于指定该菜单项是否可选
android:checked 用于指定该菜单项是否已选中
android:visible 用于指定该菜单项是否可见

说明:如果某个菜单项中还包括子菜单,可以通过在该菜单项中再包含

标记来实现。

[√]标记:用于将多个标记定义的菜单包装成一个菜单组,其说明如表所示

属性 描述
android:id 用于为菜单组设置ID,也就是唯一标识
android:heckableBehavior 用于指定菜单组内各项菜单项的选择行为,可选值为none(不可选)、all(多选)和single(单选)
android:menuCategory 用于对菜单进行分类,指定菜单的优先级,可选值为container、system、secondary和alternative
android:enabled 用于指定该菜单组中的全部菜单项是否可用 android:visible 用于指定该菜单组中的全部菜单项是否可见

例如,在res\xml目录中,定义一个名称为menus.xml的菜单资源文件,在该菜单资源中,包含3个菜单项和一个包含两个菜单项的菜单组。menus.xml的具体代码如下:

<?xml version="1.0" encoding="utf-8"?>
<group android:id="@+id/setting"> 
	<item android:id="@+id/sound" android:title="使用背景"></item> 
	<item android:id="@+id/video" android:title="背景音乐"></item> 
</group> 

Android程序国化

国际化的英文单词是Internationalization,因为该单词较长,有时简称为I18N,其中,I是该单词的第一个字母;18表示中间省略的字母个数;N是该单词的最后一个字母。Android程序国际化,是指程序可以根 据系统所使用的语言,将界面中的文字翻译成与之对应的语言。这样,可以让程序更加通用。Android可以通过资源文件非常方便地实现程序的国际化。下面将以国际字符串资源为例,介绍如何实现Android程 序的国际化。

在编写Android项目时,通常都是将程序中要使用的字符串资源放置在res\values目录下的strings.xml文件中,为了实现这些字符串资源的国际化,可以在Android项目的res目录下创建对应于各个语言的资源 文件夹(例如,为了让程序兼容简体中文、繁体中文和美式英文,可以分别创建名称为values-zh-rCN、values-zh-rTW和values-en-rUS的文件夹),然后在每个文件夹中创建一个对应的strings.xml文件,并在该文件 中定义对应语言的字符串即可。这样,当程序运行时,就会自动根据操作系统所使用的语言来显示对应的字符串信息。

实现在不同语言的操作系统下显示不同的文字。

(1)打开新建项目的res\values目录,在默认创建的strings.xml文件中,将默认添加的字符串变量hello删除,然后添加一个名称为word的字符串变量,内容是“Nothing is impossible to a willing heart.”,修改后的 strings.xml文件的具体代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources> 
	<string name="word"> </span><span class="kindle-cn-bold">Nothing is impossible to a willing heart.</string> 
	<string name="app_name">8.8</string> 
</resources>

说明:在res\values目录中创建的strings.xml文件,为默认使用的字符串资源文件。当在后面创建的资源文件(与各语言对应的资源文件)中没有与系统使用的语言相对应的文件时,将使用该资源文件。

(2)在res目录中,分别创建values-zh-rCN(简体中文)、values-zh-rTW(繁体中文)和values-en-rUS(美式英文)文件夹,并将res\values目录下的strings.xml文件分别复制到这3个文件夹中,如图8.17所示。

(3)修改res\values-zh-rCN目录中的strings.xml文件,将word变量的内容修改为“精诚所至,金石为开。”,关键代码如下:
精诚所至,金石为开。

(4)修改res/values-zh-rTW目录中的strings.xml文件,将word变量的内容修改为“精誠所至,金石為開。”,关键代码如下:
精誠所至,金石為開。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值