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开发环境是非常好的,可以随时动手操作学习 ...
随机推荐
- Aptana Studio 安装
Aptana Studio 是一个集成式的Web应用程序开发环境,它不仅可以作为独立的程序运行,而且还可以作为Eclipse插件使用. AptanaStudio是一个基于Eclipse的集成式Web开 ...
- 一个优秀的http实现框架
package com.ming; import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unir ...
- Why Creating a Meaningful Morning Routine Will Make You More Successful
https://medium.com/life-learning/how-creating-a-meaningful-morning-routine-will-make-you-more-succes ...
- POJ_2184_Cow_Exhibition_(动态规划,背包)
描述 http://poj.org/problem?id=2184 n只奶牛,每只都有智商s_i和情商f_i,取出若干只,保证智商之和与情商之和都不为负的情况下,让两者之和最大. Cow Exhibi ...
- [ZOJ 3622] Magic Number
Magic Number Time Limit: 2 Seconds Memory Limit: 32768 KB A positive number y is called magic n ...
- ☀【jQuery插件】DOM 延迟渲染
test.html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=&q ...
- Android-RC4的加密解密代码
static String RC4(String keys, String encrypt) { char[] keyBytes = new char[256]; char[] cypherBytes ...
- 排序算法_MergeSort
算法思想: 分治自顶而下实现归并排序: 分治法的三个步骤 设归并排序的当前区间是R[low..high],分治法的三个步骤是:①分解:将当前区间一分为二,即求分裂点 ...
- Web Service学习笔记
Web Service概述 Web Service的定义 W3C组织对其的定义如下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计.Web Service服务通常被定义为一组模块化的API ...
- windows下Qt5.1 for android开发环境配置(PS:Qt5.2出来了哈,稳定)
说明:以下开发环境配置过程参考了这些文章: http://qt-project.org/wiki/building_qt-android_on_windows http://www.hyarm.com ...