Android 支持不同(本地化、屏幕、版本)
设备
不同的制造商、屏幕分辨率、操作系统版本等的多样性导致不同Android设备之间存在一定的差异性。如果希望一个App可以尽可能多的支持不同Android设备,那么开发者必须对这种设备间的差异性做出相应的处理。
截至到目前为止的Android版本(http://developer.android.com/guide/topics/manifest/uses-sdk-element.html)
1、支持本地化
随着全球化的发展,地域界限越来越模糊,一个App不仅仅局限在一个小的地域内被使用。这就要求App可以支持多种语言,并尊重相应地域的文化和习俗等。Android已经为我们考虑到这一点,我们需要做的仅仅是根据它的规范,做相应的简单处理即可。
本地化不仅仅只是语言,还包括图片,布局,声音,动画等。本文仅以字符串为例,其它内容可参考Android开发者网站(http://developer.android.com/guide/topics/resources/localization.html)。
1.1创建本地字符串文件:
如果你希望自己的App支持汉语和法语,并且假定汉语为默认语言,我们需要做些什么呢?
在处理这个问题前,我们先了解一下现在的情况时什么?
在res/values文件夹下有个
strings.xml文件,里面可以保存默认语言的字符串,在本例中,里面的字符串都是汉语字符串。
接下来我们需要做的就是在res文件夹下创建
values-fr的文件夹,然后再该文件夹下创建
用于保存法语字符串的strings.xml文件。
1.2使用本地字符串:
1.2.1在XML文件中通过
@string/<string_name>形式使用:
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
1.2.2在代码中使用:
1.2.2.1通过getResource()方法使用:
String hello = getResource().getString(R.string.hello_world);
1.2.2.2通过R.string.string_name引用:
TextView tv = new TextView(this);
tv.setText(R.string.hello_world);
对于
图片,布局,声音,动画等资源的本地化操作方式类似,在此不再赘述。
2、支持多屏幕
Android允许开发者根据设备的不同分辨率设定布局文件和图片文件来支持对于多屏幕的支持。
本文仅以布局文件的设定为例:
在res/layout文件夹下有一个my_activity.xml文件,用于某个Activity的布局设计,现在希望可以支持较大屏幕设备,我们该如何处理呢?
很简单,在res文件夹下创建layout-large文件夹,然后在该文件夹下创建
my_activity.xml文件,用于对较大屏幕设备的布局设计即可。
使用时通过R.layout.my_activity.xml引用即可,示例如下:
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
如果你愿意,你还可以根据方向做布局上的设定:
更多多屏幕的操作,参考Android开发者网站(http://developer.android.com/training/multiscreen/index.html)。
3、支持多版本
最新版本的Android系统,为App的开发提供了尽可能多的API和新的功能,然而我们同样要保持对低版本的支持,直到那些低版本已经升级到高版本。这要求开发者根据不同的版本,有区别的对代码做相关处理。也许你会说,如果可以获得系统版本就好了,那样我就可以根据不同的版本做不同的代码处理了。是的,Android提供了访问系统版本的接口,下面让我们看看如何获得系统版本吧。通过Build.VERSION.SDK_INT就可以获得当前版本的API Level的整型表示。
示例:比如想根据不同的版本使用不同的UI元素,此时就需要根据不同的版本做不同的UI处理。这种情况还有很多,相信大家在遇到时都可以灵活的运用。:)
4、多说一句:
上述仅仅是对于
支持不同(本地化、屏幕、版本)Android设备的一些比较常规的做法,当然我们可以有可以达到预期效果,而又有别于常规的做法,这就需要我们灵活的运用了哦。
- 大小: 14.4 KB
- 大小: 61.5 KB
分享到:
相关推荐
在Android应用开发中,本地化和国际化是两个关键的概念,它们允许开发者构建能够适应不同语言和地区设置的应用。本文将深入探讨这两个概念,并结合提供的源码进行解析和学习。 首先,让我们理解什么是本地化...
不同地区的屏幕尺寸和分辨率可能不同,因此在`dimens.xml`文件中,可以定义不同版本的尺寸值,确保应用在各种设备上显示正确。 5. **图片资源** 图片也需要考虑文化差异,如日期格式、货币符号等。你可以创建不同...
Android Studio提供了强大的工具来支持本地化和国际化。通过Resource Manager,开发者可以方便地管理不同语言的字符串资源,并且可以使用String Translation Assistant来导入和编辑翻译文件。 4. **布局资源**: ...
在安卓(Android)开发中,本地化(Localization)与国际化(Internationalization)是至关重要的环节,它们使得应用程序能够适应不同语言和地区的需求。本压缩包文件“安卓Android源码——(本地化与国际化).zip”...
在标题和描述中提到的"QML for Android通过ScreenRecorder录制屏幕并保存为本地视频",涉及到的是利用Qt的QML模块来实现对Android设备屏幕的录制功能,并将录制内容存储为本地视频文件。这是一个相当实用的功能,...
以下是对"Android支持拍照和选择本地图片的选择器"这一主题的详细讲解。 1. **自定义图片选择器的构建** - 创建一个新的Activity或Fragment作为图片选择器的入口。 - 设计用户界面,包括用于切换拍照和选择本地...
国际化是指设计和构建软件系统,使其能够适应不同语言、文化、地区和法律的要求,而本地化则是将国际化的产品调整到特定地区的具体过程,包括翻译文本、调整日期和货币格式等。 Android系统为开发者提供了完善的...
此外,Project2.dproj.local是本地化设置,Project2.res则是资源文件,它们对项目的运行也起着支持作用。 总结来说,通过理解并分析"Delphi版Android屏幕旋转.rar"提供的项目文件,我们可以学习到如何在Delphi环境...
在Android开发中,本地化与国际化是一个至关重要的环节,它涉及到应用程序如何根据不同地区的语言和文化习惯来呈现内容。本资料包“应用源码之(本地化与国际化).zip”提供了关于这一主题的深入学习资源,适合对...
2. **布局和资源文件的本地化**:除了文本资源,还可以为不同语言创建专门的布局和资源文件。例如,对于中文环境,可以在`res/layout-zh/`目录下放置特定的语言版本布局文件。 3. **地区和日期格式**:Android还...
- **适配不同设备**:由于Android设备的多样性和屏幕尺寸差异,你需要考虑不同设备的适配问题,确保在各种设备上都能正常运行。 - **测试与调试**:使用模拟器和真实设备进行测试,检查播放、控制、字幕等功能是否...
10. **测试**:为了确保emoji在各种场景下都能正确显示,开发者需要进行广泛的测试,包括不同输入法、不同Android版本、不同设备以及不同屏幕尺寸的测试。 总的来说,要实现“android支持第三方输入法输入emoji表情...
Android Studio支持资源的本地化,开发者可以为不同的语言创建对应的res/values-xx目录,其中xx代表语言代码。XML文件如strings.xml存储了应用中的文本,每个语言版本的文件可以包含相应的翻译。在项目中,颜色选择...
6. **适配不同的屏幕尺寸和密度**:虽然这不是语言国际化的一部分,但Android也支持针对不同屏幕尺寸和密度的资源。通过创建如`drawable-hdpi`、`layout-sw600dp`等目录,可以为不同设备提供优化的资源。 7. **测试...
本地播放功能则是用户最常见的需求之一,能够支持用户在设备上播放存储的视频文件。本篇将深入探讨如何在Android中构建一个自定义的本地视频播放器。 首先,理解Android中的多媒体框架至关重要。Android提供了...
在Android开发中,多语言与国际化(Internationalization,简称i18n)是提升应用程序全球适应...同时,需要注意的是,国际化不仅仅是语言的转换,还需要充分理解不同文化背景下的用户需求,以提供更贴近本地化的体验。
9. **多设备适配**:讨论屏幕适配、资源密度和语言本地化,以及如何使用碎片(Fragment)来支持不同屏幕尺寸的设备。 10. **Android性能优化**:介绍内存管理、CPU优化、启动速度提升、APK瘦身等实践策略,以及使用...
2. **响应式布局**:设计基于栅格系统,支持多种屏幕尺寸和设备,确保在不同设备上的良好显示效果。 3. **组件丰富**:提供了诸如导航、表格、按钮、提示等常见的UI组件,便于快速搭建界面。 4. **易于学习和使用**...
#### AndroidX和不同版本的Android支持 AndroidX库是一个替代了Android Support库的项目,提供了更好的模块化和更广泛的组件支持。文档指导开发者如何支持新旧Android版本,包括AndroidX的使用。 ### 使用工具和库 ...