Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的语言

简介: 原文地址 : http://android.xsoftlab.net/training/basics/supporting-devices/index.html支持不同的设备在世界上,Android设备以很多种形状和尺寸呈现。

原文地址 : http://android.xsoftlab.net/training/basics/supporting-devices/index.html

支持不同的设备

在世界上,Android设备以很多种形状和尺寸呈现。正因为有这么多种设备,你的应用有机会被巨多的用户所使用。为了在Android上尽可能的成功,你的应用需要适配花样繁多的设备配置。一些重要的点就是你应该考虑包含不同的语言、适配各种屏幕尺寸密度、各种各样的Andorid平台版本。

这节课将会教你如何利用可替代资源和其它特性等最基本的平台特性完成适配,这样你的APP才可以只用一个APK就可以在花样繁多的Android设备上提供极佳的用户体验。

支持不同的语言

这对于在APP的代码中使用R.string.xx这种字符串资源并将它们放入一个额外的文件中来说是最好的练习。Android使得每一个Android工程管理这种资源很轻松。

如果你使用的是Android SDK Tools创建的工程,那么在工程的res/目录下有很多种类的资源类型。这里有一些默认的文件比如res/values/string.xml便是存放字符串资源的地方。

创建本地语言目录和字符串文件

为了支持更多的语言,在res/目录下创建一个包含values,连接符,国际标准化组织语言编码作为名称的目录,举个例子,values-es/是一个包含了以es编码的本地语言的简单资源目录。Android会在设备运行的时候读取本地语言设置从而加载合适的本地语言。更多信息请参见:Providing Alternative Resources.

如果决定了将要支持哪种语言,只需要创建一个资源目录和一个字符串资源文件:

MyProject/
    res/
       values/
           strings.xml
       values-es/
           strings.xml
       values-fr/
           strings.xml

在合适的文件中为每一个本地语言添加字符串值。

在运行时,Android系统会基于用户的设备设置来选择适合的字符串资源。

下面是一些不同语言所对应的字符串资源文件:
English (default locale), /values/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">My Application</string>
    <string name="hello_world">Hello World!</string>
</resources>

Spanish, /values-es/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Mi Aplicación</string>
    <string name="hello_world">Hola Mundo!</string>
</resources>

French, /values-fr/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Mon Application</string>
    <string name="hello_world">Bonjour le monde !</string>
</resources>

Note:你可以对任何资源类型使用这种本地限定词,比如如果你只想将位图图像提供给局部的版本就可以这么做。更多信息请参见:Localization.

使用字符串资源

你可以在源码或者XML文件中引用这些字符串资源,字符串资源名称通过在文件中定义的< string>元素的name属性定义。

在代码中,可以通过语句R.string.< string_name>引用字符串资源。下面是可接受字符串资源的一些方法:

// Get a string resource from your app's Resources
String hello = getResources().getString(R.string.hello_world);
// Or supply a string resource to a method that requires a string
TextView textView = new TextView(this);
textView.setText(R.string.hello_world);

在其它的XML文件中,可以通过语句@string/< string_name>引用字符串资源,下面是如何在XML使用字符串值:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />
目录
相关文章
|
2月前
|
Android开发
如何用Airtest脚本无线连接Android设备?
如何用Airtest脚本无线连接Android设备?
|
3月前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
59 0
|
4月前
|
Android开发
【Android App】蓝牙的设备配对、音频传输、点对点通信的讲解及实战(附源码和演示 超详细)
【Android App】蓝牙的设备配对、音频传输、点对点通信的讲解及实战(附源码和演示 超详细)
77 0
|
6月前
|
生物认证 开发工具 Android开发
安卓设备签到,还是用视觉智能平台人脸搜索1:N
安卓设备签到,还是用视觉智能平台人脸搜索1:N
155 2
|
3天前
|
编解码 人工智能 测试技术
安卓适配性策略:确保应用在不同设备上的兼容性
【4月更文挑战第13天】本文探讨了提升安卓应用兼容性的策略,包括理解平台碎片化、设计响应式UI(使用dp单位,考虑横竖屏)、利用Android SDK的兼容工具(支持库、资源限定符)、编写兼容性代码(运行时权限、设备特性检查)以及优化性能以适应低端设备。适配性是安卓开发的关键,通过这些方法可确保应用在多样化设备上提供一致体验。未来,自动化测试和AI将助力应对设备碎片化挑战。
|
24天前
|
Java Android开发
Android开发系列全套课程
本系列课程面向有java基础,想进入企业从事android开发的计算机专业者。学习搭配实战案例,高效掌握岗位知识。
16 1
|
1月前
|
Shell 开发工具 Android开发
ADB 下载、安装及使用教程:让你更好地管理 Android 设备
ADB 下载、安装及使用教程:让你更好地管理 Android 设备
419 2
|
3月前
|
开发工具 Android开发
Android平台RTMP推送|轻量级RTSP服务|GB28181设备接入模块之实时快照保存JPG还是PNG?
Android平台RTMP推送|轻量级RTSP服务|GB28181设备接入模块之实时快照保存JPG还是PNG?
|
3月前
|
存储 前端开发 测试技术
Android 官方架构中的 UseCase 该怎么写?
Android 官方架构中的 UseCase 该怎么写?
65 0
|
4月前
|
物联网 Android开发
【Android App】低功耗蓝牙中扫描BLE设备的讲解及实战(附源码和演示 超详细)
【Android App】低功耗蓝牙中扫描BLE设备的讲解及实战(附源码和演示 超详细)
88 0