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

原文地址 : 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.xmlvalues-es/strings.xmlvalues-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" />

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop YARN:调度性能优化实践

背景 YARN作为Hadoop的资源管理系统&#xff0c;负责Hadoop集群上计算资源的管理和作业调度。 美团的YARN以社区2.7.1版本为基础构建分支。目前在YARN上支撑离线业务、实时业务以及机器学习业务。 离线业务主要运行的是Hive on MapReduce&#xff0c; Spark SQL为主的数据仓库作…

python list保存至csv文件

python list保存至csv文件&#xff1a;https://blog.csdn.net/qq_43372138/article/details/84110624?utm_mediumdistribute.pc_aggpage_search_result.none-task-blog-2alltop_click~default-1-84110624.nonecase&utm_termpython%E5%B0%86list%E5%86%99%E5%85%A5csv&…

LeetCode 39. 组合总和(排列组合 回溯)

1. 题目 给定一个无重复元素的数组 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明&#xff1a; 所有数字&#xff08;包括 target&#xff09;都是正整数。 解集不能包…

深度学习平台的未来:谁会赢得下半场?

今天这篇文章无意引战&#xff0c;只想从历史发展的角度来谈谈深度学习大背景下的开发工具变迁&#xff0c;以及对未来发展趋势的想象。TensorFlow&#xff1a;无力回天的深度学习里程碑不知道有多少小伙伴是2017年以前入坑深度学习的&#xff0c;那时候人工智能概念火热&#…

论文浅尝 | 基于属性嵌入的知识图谱实体对齐

论文笔记整理&#xff1a;王中昊&#xff0c;天津大学硕士&#xff0c;方向&#xff1a;自然语言处理。来源&#xff1a;AAAI2019论文链接&#xff1a; https://doi.org/10.1609/aaai.v33i01.3301297概述知识图谱之间的实体对齐的任务目标是去找到那些在两个不同的知识图谱上表…

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

原文地址 : http://android.xsoftlab.net/training/basics/supporting-devices/screens.html#create-bitmaps Android设备屏幕分为两个通用的属性&#xff1a;尺寸和密度。你应该期待应用将会被安装在屏幕的密度和尺寸都在范围内的设备上。正因为这样&#xff0c;你应该包含一…

基本功 | Litho的使用及原理剖析

1. 什么是Litho&#xff1f; Litho是Facebook推出的一套高效构建Android UI的声明式框架&#xff0c;主要目的是提升RecyclerView复杂列表的滑动性能和降低内存占用。下面是Litho官网的介绍&#xff1a; Litho is a declarative framework for building efficient user interfa…

图解GPT-2(完整版)!

图解GPT-2&#xff08;完整版&#xff09;&#xff01;

论文浅尝 | 基于深度强化学习将图注意力机制融入知识图谱推理

论文笔记整理&#xff1a;陈名杨&#xff0c;浙江大学直博生。Introduction知识图谱&#xff08;KGs&#xff09;在很多NLP的下游应用中起着越来越重要的作用。但是知识图谱常常是不完整的&#xff0c;所以解决知识图谱补全的任务也非常重要。主要有三种方法来完成知识图谱补全…

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

原文地址 : http://android.xsoftlab.net/training/basics/supporting-devices/platforms.html 每当APP使用了Android所提供的最新版的API时&#xff0c;应用应该继续对老版本提供支持&#xff0c;直到所有的设备都更新到最新版。这一节将会展示如何使用更流行的新版本API时还…

聊聊如何提升推荐系统的结果多样性

文 | 洪九(李戈)源 | 知乎个性化推荐系统的出现为处理信息过载问题提供了一个有效的工具&#xff0c;已经成为互联网各大平台(电商、信息流等)的标配&#xff0c;并在技术(个性化召回、个性化排序等)上取得了长足的发展&#xff0c;逐渐从传统模型过度到深度学习时代。但是&…

论文浅尝 | GNN with Generated Parameters for Relation Extraction

论文笔记整理&#xff1a;申时荣&#xff0c;东南大学博士生。地址&#xff1a;https://arxiv.org/pdf/1902.00756.pdf来源&#xff1a;ACL2019在许多自然语言处理任务&#xff08;例如关系提取&#xff09;中&#xff0c;多跳关系推理是必不可少的&#xff0c;而图神经网络&am…

大众点评信息流基于文本生成的创意优化实践

1. 引言 信息流是目前大众点评除搜索之外的第二大用户获取信息的入口&#xff0c;以优质内容来辅助用户消费决策并引导发现品质生活。整个大众点评信息流&#xff08;下文简称点评信息流&#xff09;围绕个性化推荐去连接用户和信息&#xff0c;把更好的内容推荐给需要的用户。…

LeetCode 701. 二叉搜索树中的插入操作(二叉查找树/插入)

1. 题目 给定二叉搜索树&#xff08;BST&#xff09;的根节点和要插入树中的值&#xff0c;将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。 注意&#xff0c;可能存在多种有效的插入方式&#xff0c;只要树在插入后仍保持为二叉搜索…

docker的简单操作和端口映射

docker的简单操作和端口映射&#xff1a;https://www.cnblogs.com/lixaingyang/p/11976827.html docker的简单操作和端口映射 一&#xff1a;简介 Docker镜像 在Docker中容器是基于镜像启动的 镜像是启动容器的核心 镜像采用分层设计&#xff0c;最顶层为读写层 使用快照COW技…

Android官方开发文档Training系列课程中文版:管理Activity的生命周期之启动一个Activity

原文地址 : http://android.xsoftlab.net/training/basics/activity-lifecycle/index.html 导言 用户通过导航退出或者返回应用的时候&#xff0c;应用中Activity的生命周期会在不同的状态之间变换。举个例子&#xff0c;当Activity初次启动的时候&#xff0c;它会来到系统的…

论文浅尝 | 利用多语言 wordnet 上随机游走实现双语 embeddings

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士生&#xff0c;研究方向为知识图谱问答。来源&#xff1a;Knowledge Based System链接&#xff1a;https://www.sciencedirect.com/science/article/abs/pii/S0950705118301412?via%3Dihub双语word embedding将两种语言…

实践中学到的最重要的机器学习经验!

文 | 微调源 | 知乎问答今天我们讨论一个很有实际意义的问题&#xff1a;你在实践中学到的最重要的机器学习经验是什么&#xff1f;以下回答来自知乎优秀答主微调。1.永远保持怀疑机器学习是最容易得到错误结论的一种解决方案。和编程、做表格、或者纯粹的数学建模不同&#xf…

Selenium爬虫

import re import requests# 伪装头部&#xff0c;反爬 headers {Host: m.weibo.cn,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36,X-Requested-With: XMLHttpRequest } # 目标微博用户…

Android官方开发文档Training系列课程中文版:管理Activity的生命周期之暂停和恢复Activity

原文地址 : http://android.xsoftlab.net/training/basics/activity-lifecycle/pausing.html 在APP的正常使用过程中&#xff0c;在前台工作的Activity有时可能会被其他的可视化组件挡住&#xff0c;而引起Activity进入Paused状态。举个例子&#xff0c;当一个半透明的Activit…