android开发之国际化
国际化,听起来高大上,做起来很简单。
我们来实现一个简单的效果,让应用根据系统的语言来做不同的显示,假如android系统默认是英语,应用就以英文的形式显示,如果android系统默认是中文,则应用就显示中文。
新建一个工程,名字叫做I18N,要做国际化,字符串的显示一定要按android规定的来,就是要显示的文字都定义在string里,一般情况下,新建的项目中会有一个values文件夹,values文件夹中有一个strings.xml文件,所有的字符串都放在这里,如果我们要实现国际化,就要新建一个文件夹,叫做vaules-zh(专放中文),vaules中放的东西和values-zh中放的文件一致,只不过显示的语言不同。
这是values-zh中的strings.xml文件的内容(应用使用中文简体显示):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">国际化</string>
<string name="hello_world">你好,世界!</string>
<string name="action_settings">设置</string>
</resources>
这是values中的strings.xml文件的内容:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">I18N</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
</resources>
这是values-zh-rTW中的strings.xml文件的内容(应用使用繁体显示):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">國際化</string>
<string name="hello_world">你好,世界,你好,中國</string>
<string name="action_settings">設置</string>
</resources>
项目布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.i18n.MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<ImageView
android:id="@+id/im"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
textview引用了helloworld,当系统语言为英文时,应用就是显示英文,当系统语言为中文时,应用就会显示中文。
这是显示内容的国际化,图片也可以实现国际化。
实现方式与实现文字国际化的方式相似,在res文件夹中新建图片文件夹,drawable-zh,drawable-zh-rTW,图片放进去就行了。
Java代码:
public class MainActivity extends Activity {
private ImageView im;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
im = (ImageView) this.findViewById(R.id.im);
im.setImageResource(R.drawable.flag);
}
}
java中只需要设置一张图片就行了,因为drawable,drawable-zh,drawable-zh-rTW中存放的图片都是叫做flag,系统会根据具体语言环境选择相应的图片,效果如下:
android开发之国际化的更多相关文章
- 学Android开发,入门语言java知识点
学Android开发,入门语言java知识点 Android是一种以Linux为基础的开源码操作系统,主要使用于便携设备,而linux是用c语言和少量汇编语言写成的,如果你想研究Android,就去学 ...
- Android开发学习清单
目录: 第1章 Android应用与开发环境1.1 Android的发展和历史1.1.1 Android的发展和简介1.1.2 Android平台架构及特性1.2 搭建Android开发环境1.2.1 ...
- Android开发全套视频教程在线观看网盘下载
千锋金牌讲师老罗老师简介: 国内第一批Android教学讲师,10多年软件开发经验,6年多教学经验,曾担任广东电信北京分公司移动事业部项目经理,主持过微软中国平台考试系统.山西省旅游局智能化平台等大型 ...
- Android开发入门经典实例
开发实例概述 今天带大家做一个简单的Android App,这个App会显示创新工程实践老师们的照片和信息,不妨先看一看效果: 虽然这个App非常简单,但是涉及到了Android开发中的一些关键知识, ...
- [APP] Android 开发笔记 002-命令行创建默认项目结构说明
接上节:[APP] Android 开发笔记 001 4. 默认项目结构说明: 这里我使用Sublime Text 进行加载.
- Android开发第一讲之目录结构和程序的执行流程
1.如何在eclipse当中,修改字体 下面的这种办法,可以更改xml的字体 窗口--首选项--常规--外观--颜色和字体--基本--文本字体--编辑Window --> Preferences ...
- [Android开发学iOS系列] Auto Layout
[Android开发学iOS系列] Auto Layout 内容: 介绍什么是Auto Layout. 基本使用方法 在代码中写约束的方法 Auto Layout的原理 尺寸和优先级 Auto Lay ...
- Android学习探索之Java 8 在Android 开发中的应用
前言: Java 8推出已经将近2年多了,引入很多革命性变化,加入了函数式编程的特征,使基于行为的编程成为可能,同时减化了各种设计模式的实现方式,是Java有史以来最重要的更新.但是Android上, ...
- Android 开发一定要看的15个实战项目
前言: 虽说网上有太多的Android课程,但是大多都是视频,有Android在线开发环境的几乎没有,但是对于学习Android的人来说拥有在线的Android开发环境是非常好的,可以随时动手操作学习 ...
随机推荐
- web 文件上传 无刷新的方法 使用iframe
<html> <script type="text/javascript" src="admin/view/js/jquery.min.js" ...
- 【NOIP2015 DAY1 T3 】斗地主(landlords)
题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3<4< ...
- 任正非:华为三十年大限快到了 想不死就得新生(建立战略预备队)cool
华为心声社区官方微信今日发布了任正非8月15日在华为公司内部做的关于战略预备队建设汇报的讲话.讲话内容中提到,华为公司需要组织.结构.人才等所有一切都变化,通过变化使新的东西成长起来. 任正非表示 ...
- WordPress 'is_serialized()'远程任意代码执行漏洞(CVE-2013-4338)
漏洞版本: WordPress 3.6 漏洞描述: Bugtraq ID:62345 CVE ID:CVE-2013-4338 WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PH ...
- 论在Repository中使用EF框架
最近在思考框架的事情,从Petshop的传统三层框架过渡到目前的DDD模式. 目前纠结的几个节点是: 1,EF这个ORM框架,有没有必要在 Repository 层封装一下,或者直接在 Service ...
- 哈希(3) java中的hashcode
看看jdk api中对object类的描述 1.http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html 2首先你要知道每个对象都有 ...
- POJ 3074 Sudoku (Dacing Links)
推荐一个写数独很好的博客:http://www.cnblogs.com/grenet/p/3163550.html 主要是把九宫格里的元素换到矩阵里面再求解dancing links 网上找的一模版 ...
- [ZETCODE]wxWidgets教程一:介紹
本教程原文链接:http://zetcode.com/gui/wxwidgets/introduction/ 翻译:瓶哥 日期:2013年11月26日星期二 邮箱: 414236069@qq.com ...
- ambari的重新安装
ambari是什么呢? 这里我简单说一下ambari的目的,他的目的就是简化hadoop集群的安装和管理.对于安装简化到什么地步呢?只需要几个命令,在页面上配置几个参数,几百几千个节点的集群就能安装成 ...
- 安装Office时出现windows installer服务不能更新一个或多个受保护的windows文件错误的解决方法
今天在Windows XP上安装Microsoft Office 2010时,总是遇到“Windows Installer服务不能更新一个或多个受保护的windows文件,安装失败,正在回滚更改”提示 ...