android开发之国际化
来源:互联网 发布:重复文件清理软件 编辑:程序博客网 时间:2024/05/01 05:10
国际化,听起来高大上,做起来很简单。
我们来实现一个简单的效果,让应用根据系统的语言来做不同的显示,假如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应用开发之国际化
- Android开发之国际化问题
- Android开发之语言国际化
- android开发笔记之 Android 国际化
- Android 开发之软件的国际化
- iOS开发之国际化
- android开发步步为营之82:android多语言国际化
- Android开发国际化
- Android UI开发----国际化
- Android 之 语言 国际化
- Android UI之国际化
- android之语言国际化
- iOS 开发之本地化 国际化
- Android 国际化开发命名规范
- Android——开发国际化
- Android 之 尺寸的国际化
- Android资源访问之国际化
- python中的str与unicode处理方法
- 配置YUM源
- thinkphp的config基本配置
- leetcode_Trapping Rain Water
- JSP和Servlet性能优化
- android开发之国际化
- Python中peewee模块(一)
- hibernate
- Eclipse 项目有红感叹号
- linux下格式xml
- iOS之多线程编程:三个层次线程应用
- java多线程
- 浅析 Linux 初始化 init 系统,第 2 部分: UpStart
- Hibernate学习笔记(2)------------Hibernate数据对象的三种状态