`
crazier9527
  • 浏览: 1011394 次
  • 性别: 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应用开发中,为了使应用能够适应全球不同的语言环境,开发者通常会采用资源国际化(i18n,Internationalization)技术。这个过程涉及到将应用中的文本和图片资源分离出来,以便根据不同地区创建对应的翻译...

    Android的资源与国际化设置

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

    Android国际化资源文件Excel模板

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

    Android中GridView拖拽的效果!

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

    android 本地化

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

    android sqlite可视化工具

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

    Android+sdk中文帮助文档

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

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

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

    开源中国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的可视化界面设计工具

    DroidDraw 是一个基于Java Swing的Android界面设计器,我们可以通过它来生成复杂的Android Layout XML文件,据作者介绍,Android的Layout和Swing Layout中有很好的对应,设计器的代码编写起来还是比较容易的。...

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

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

    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 Studio 个性化设置配色方案

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

    Android中拆包技术

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

    【免费第一弹】android无需引擎,实现粒子效果!

    在Android开发中,粒子效果是一种常见的视觉特效,用于创建如火焰、烟雾、雪花等动态效果,极大地提升了应用的用户体验。本资源包提供了一种无需依赖额外引擎就能在Android平台上实现粒子效果的方法,这对于开发者来...

    Android中的动态加载机制

    2. DexOpt与DexFile:在Android中,dex文件是应用程序的执行代码。为了动态加载,我们可能需要将新的.dex文件转换为系统可识别的形式。这涉及到DexOpt过程,它将dex文件优化为odex(optimized dex)格式。同时,Dex...

Global site tag (gtag.js) - Google Analytics