`
crazier9527
  • 浏览: 1016325 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android中的资源与国际化!(转载)

阅读更多

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

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

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

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

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

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

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7. <TextView    
  8.     android:layout_width="fill_parent"   
  9.     android:layout_height="wrap_content"   
  10.     android:text="@string/hello"  
  11.     />  
  12. </LinearLayout>  

 

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

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.     <string name="hello">Hello World, ResourceDemo!</string>  
  4.     <string name="app_name">ResourceDemo</string>  
  5. </resources>  

 

运行效果如下图所示:

port(竖屏模式)效果:

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

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

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

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7. <TextView    
  8.     android:layout_width="fill_parent"   
  9.     android:layout_height="wrap_content"   
  10.     android:text="@string/land"  
  11.     />  
  12. </LinearLayout>  

 

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

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7. <TextView    
  8.     android:layout_width="fill_parent"   
  9.     android:layout_height="wrap_content"   
  10.     android:text="@string/port"  
  11.     />  
  12. </LinearLayout>  

 

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

 

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

 

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

竖屏(port)效果:

横屏(land)下效果:

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

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

目录结构如下图所示:

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

 

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

 

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

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

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

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

 

转自:http://blog.csdn.net/Android_Tutor/archive/2010/09/09/5874367.aspx

 

分享到:
评论

相关推荐

    Android的资源与国际化设置

    Android的资源与国际化设置 代码说明 资源管理和多国版本

    Android国际化资源文件Excel模板

    用于android资源文件生成工具读取,存放各国语言翻译好的文字

    Android中GridView拖拽的效果!

    最近看到联想,摩托罗拉等,手机launcher中有个效果,进入mainmenu后,里面的应用程序的图标可以拖来拖去,所以我也参照网上给的代码,写了一个例子。还是很有趣的,实现的流畅度没有人家的那么好,我只是模仿这种...

    android 本地化

    在Android开发中,本地化(Localization)是一项至关重要的任务,它允许应用程序适应不同地区和语言的用户需求。本地化不仅仅是翻译文本,还包括日期格式、数字格式、货币单位、图像资源等多方面的调整,以确保软件...

    Android应用程序资源管理框架 PPT

    资源在Android应用程序编译的过程中,也会被编译成二进制格式。这是为了压缩资源存储空间,以及加快运行时的资源解析速度。Android应用程序在运行的时候,资源管理器AssetManager和Resources会根据当前的机器设置,...

    android sqlite可视化工具

    总之,使用“android sqlite可视化工具”如SQLite Expert,能极大地提升Android开发中对SQLite数据库的管理和维护效率,使得非SQL专家的开发者也能轻松处理数据库相关任务。同时,这类工具通常具有良好的用户界面和...

    android webView加载html 并引用本地资源(图片、字体库)

    在Android中,我们需要在布局XML文件中添加一个WebView元素,并在对应的Activity或Fragment中初始化它: ```xml android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match...

    Android多语言的demo

    总的来说,这个"Android多语言的demo"项目通过简单的实例讲解了Android应用如何实现多语言支持,包括资源文件的组织、字符串资源的定义以及在代码中调用这些资源。通过学习和理解这个demo,开发者可以进一步掌握如何...

    Android+sdk中文帮助文档

    资源与国际化设置 开发工具箱 设计哲学与理念 构建常用组件 可选API 相关资料 Package 索引 Class 索引 Class 等级 Views列表 Intents列表 许可列表 资源类型列表 Android IDL(Android接口定义语言) 术语...

    开源中国Android客户端2.0 Gradle化 Android Studio

    开源中国Android客户端2.0的Gradle化是一个重要的里程碑,标志着该项目从传统的构建方式向现代、自动化、灵活的Gradle构建系统的转变。Android Studio作为Google官方推荐的Android开发集成环境,集成了Gradle构建...

    Android usb Camera源码

    这个资源是网站下载的一份Android usb摄像头的源码!我在我的Exynos4412开发板上面测试OK!不过只能预览!而且我强制把ImageProc.c里面的设备文件指向我USB摄像头的设备文件! 编译环境:ubuntu+ndk_build+eclipse ...

    android 获取服务器上资源(图片,文本)

    在Android开发中,获取服务器上的资源,如图片和文本,是一项常见的任务。HttpURLConnection是Java提供的一个基础网络连接类,可以用于实现与HTTP服务器的通信。在这个过程中,我们需要理解网络请求的基本原理,以及...

    Android API中文文档

    Android API 中文文档 Android API 中文文档 Android API 中文文档 Android API 中文文档 Android API 中文文档 Android API 中文文档 Android API 中文文档 Android Android API 中文文档 中文文档Android API ...

    android之基于高德地图的移动轨迹的可视化

    在Android开发中,基于高德地图实现移动轨迹的可视化是一项常用且重要的技术。高德地图API为开发者提供了丰富的功能,包括地图展示、定位、路径规划、轨迹追踪等,使得我们能够在移动应用中轻松地实现地理位置相关...

    ArcGIS for Android DrawTool

    **ArcGIS for Android DrawTool** 是一款专门为Android平台设计的GIS(地理信息系统)开发工具,它集成在Esri的ArcGIS SDK for Android中。这款工具类使得开发者能够为Android应用程序添加绘制功能,允许用户在地图...

    Android漂亮好看的登陆,注册界面!程序源码

    在Android应用开发中,设计美观、用户友好的登录和注册界面是至关重要的,因为它往往是用户与应用程序接触的第一步。这个"Android漂亮好看的登陆,注册界面!程序源码"提供了一个示例,帮助开发者构建吸引人的UI,...

    android中Webview与javascript的交互(互相调用)

    1. **WebView的引入**:在Android应用中,我们需要在布局XML文件中添加WebView组件,并在Java代码中实例化并设置相关属性。例如: ```xml android:id="@+id/webView" android:layout_width="match_parent" ...

    Android 4.4.2 sdk工具

    2. **Platform Tools**:SDK中包含的平台工具,如`adb`(Android Debug Bridge),用于与运行Android系统的设备进行通信,执行诸如安装应用、传输文件、设备控制等任务。`fastboot`用于在设备启动过程中进行硬件编程...

    Android中拆包技术

    Android Studio支持将不同语言、图片密度等资源拆分到不同的APK中,这样可以针对特定设备或地区提供定制化的APK,减少不必要的资源加载,从而减小包体积。 3. **动态加载(Dynamic Delivery)** Android Studio ...

    Android Studio 个性化设置配色方案

    在Android Studio中file-&gt;import setting 选择解压目录下的Monokai-Sublime.jar,勾选导入color scheme 然后可能需要重启。(在导入monokai配色方案之前先将主题设为darcula,darcula的暗色背景配monokai的鲜艳色彩...

Global site tag (gtag.js) - Google Analytics