摘要:该文章将向大家分享 Android中的资源与国际化的问题。

  今天给大家分享一下Android中的资源与国际化的问题,通常我们新建一个Android工程,目录结构如下图所示:

Android中的资源与国际化!  我们主要看一下layout与values目录,layout里的xml文件的我们应用使用布局的文件,values里的sring.xml是用来存放文字资源,一个key对应一个value值。

  但是在实际应用开发中,通常横屏(land)与竖屏(port)可能布局文件有所不同,这时候我们可以独自定义横屏与竖屏的布局文件(文件名字要一样),默认情况是加载layout目录里的布局文件。同样应用还要支持不同的语言,如果我们应用里没有定义手机所用语言的资源时,会默认加载values的值。

  为了方便大家理解下面做个简单的Demo.具体步骤如下:

  第一步:新建一个Android工程,命名为ResourceDemo。

  我们看一下layout目录下的自动生成的main.xml布局文件,代码如下:

  view plaincopy to clipboardprint?

                 <?         xml version         =         "         1.0         "         encoding         =         "         utf-8         "         ?>                  <         LinearLayout xmlns:android         =         "         http://schemas.android.com/apk/res/android         "         android:orientation         =         "         vertical         "         android:layout_width         =         "         fill_parent         "         android:layout_height         =         "         fill_parent         "                  >                  <         TextView android:layout_width         =         "         fill_parent         "         android:layout_height         =         "         wrap_content         "         android:text         =         "         @string/hello         "                  />                  </         LinearLayout         >                      

  其中我们程序显示的文本内容是在values/string.xml文件中对应的hello的值,代码如下:

  view plaincopy to clipboardprint?

                 <?         xml version         =         "         1.0         "         encoding         =         "         utf-8         "         ?>                  <         resources         >                  <         string         name         =         "         hello         "         >         Hello World, ResourceDemo         !</         string         >                  <         string         name         =         "         app_name         "         >         ResourceDemo         </         string         >                  </         resources         >                      

  运行效果如下图所示:

  port(竖屏模式)效果:

Android中的资源与国际化!

  Ctrl+F11快捷键模拟器变成横屏(land)模式:

Android中的资源与国际化!

  第二步:我们定义land与port模式的布局文件,即在res/目录下创建layout-land与layout-port两个文件夹,目录结果如下所示:

Android中的资源与国际化!

  layout-land目录下main.xml和layout内容基本一样,只是显示内容不同,代码如下:

  view plaincopy to clipboardprint?

                 <?         xml version         =         "         1.0         "         encoding         =         "         utf-8         "         ?>                  <         LinearLayout xmlns:android         =         "         http://schemas.android.com/apk/res/android         "         android:orientation         =         "         vertical         "         android:layout_width         =         "         fill_parent         "         android:layout_height         =         "         fill_parent         "                  >                  <         TextView android:layout_width         =         "         fill_parent         "         android:layout_height         =         "         wrap_content         "         android:text         =         "         @string/land         "                  />                  </         LinearLayout         >                      

  同理layou-port目录下main.xml代码如下:

  view plaincopy to clipboardprint?

                 <?         xml version="1.0" encoding="utf-8"         ?>                  <         LinearLayout         xmlns:android         ="http://schemas.android.com/apk/res/android"         android:orientation         ="vertical"         android:layout_width         ="fill_parent"         android:layout_height         ="fill_parent"                  >                  <         TextView         android:layout_width         ="fill_parent"         android:layout_height         ="wrap_content"         android:text         ="@string/port"                  />                  </         LinearLayout         >                      

  当然我们显示的内容是在values/string.xml文件里定义的,这里加了两个值,代码如下:

  view plaincopy to clipboardprint?

                 <?         xml version="1.0" encoding="utf-8"         ?>                  <         resources         >                  <         string         name         ="hello"         >         Hello World, ResourceDemo!         </         string         >                  <         string         name         ="app_name"         >         ResourceDemo         </         string         >                  <         string         name         ="land"         >         This is land mode.         </         string         >                  <         string         name         ="port"         >         This is port mode.         </         string         >                  </         resources         >                      

  然后再次运行程序,效果如下:

  竖屏(port)效果:

Android中的资源与国际化!

  横屏(land)下效果:

Android中的资源与国际化!

  通过上面例子可以得出如果我们已经定义了横屏与竖屏布局文件时,就不会在加载layout里的同名布局文件。

下面我们来讲点国际化,通常国际化我们只要在res/目录下在重新定义values-国家编号,如values-zh-rCN简体汉语,values-zh-rTW繁体,values-jp日语等。

  目录结构如下图所示:

Android中的资源与国际化!

  这里我只在values-zh-rCN作了改动,代码如下:

  view plaincopy to clipboardprint?

                 <?         xml version="1.0" encoding="utf-8"         ?>                  <         resources         >                  <         string         name         ="hello"         >         Hello World, ResourceDemo!         </         string         >                  <         string         name         ="app_name"         >         ResourceDemo         </         string         >                  <         string         name         ="land"         >         这是横屏模式.         </         string         >                  <         string         name         ="port"         >         这是竖屏模式.         </         string         >                  </         resources         >                      

  我们运行程序之前,把手机语言改成中文,在settings(设置)->language & keyboards(语言与键盘)目录下,选择简体中文,如下图所示:

Android中的资源与国际化!

  最然在运行上述工程,效果如下:

Android中的资源与国际化!

  这时候我们应用的显示内容就为中文了,而不去显示values/strings.xml里的内容。

  Ok~今天就到这里,希望对大家特别是初学者有点帮助.

时间:2014-05-07 08:52 来源:http://www.codesocang.com/jiaocheng/shoujikaifa/2014/0507/7474.html浏览:6 次

更多相关文章

  1. android输入法弹出调整布局与沉浸式状态栏冲突+fitSystemWindows
  2. Android系统资源
  3. 【Android】在Android上使用OrmLite数据库框架 之 使用表配置文
  4. Android开发中的drawable文件:shape、layer-list和selector标签
  5. Android操作Excel文件的功能实现
  6. Android中资源文件的使用
  7. 【android】布局之盒模型、对齐方式、填充(类比web理解)
  8. android资源
  9. Android生成签名文件并用其对apk文件进行签名(Failure [INSTALL_P

随机推荐

  1. android实现标题栏、状态栏图标文字颜色
  2. Android Studio--报错日记
  3. [置顶] 我的Android进阶之旅------>Andro
  4. Android DEX 方法超过64K限制
  5. android--创建快捷方式和判断是否已经创
  6. Android ApiDemos示例解析(137):Views->L
  7. 高煥堂的四本Android开发新書(簡體完整版
  8. Android的内存优化相关记录
  9. ubuntu9.10安装android SDK
  10. Android中垃圾回收日志信息