APP支持多语言、多屏幕、多版本
2016-08-16 15:13
471 查看
支持不同的语言
为了让APP支持多种语言版本,最好的办法就是将UI中显示的字符串提取出来并保存到一个资源文件中,Android在这方面已经做了支持,当你创建完一个Android项目之后,Android SDK工具将会创建一个名为res的目录,这个目录中存放的是项目中用到的资源文件,在创建之初,该文件夹下会有一些默认的文件,例如res/values/strings.xml,string.xml用来存放上面提到的字符串,这个文件中默认是中文的,开发者要想添加多语言支持,需要在res文件夹下创建相应的资源文件,例如values-es/strings.xml,为每一个区域添加字符串。Android在运行时会根据手机的基础设置来设置APP中显示的字符串。
支持不同的屏幕大小
要想支持不同的屏幕大小,开发者应该从以下两方面入手:
Create Different Layouts
官网提到目前屏幕的大小分为 small, normal, large, xlarge几类,除了大小之外,屏幕的横竖也会影响用户的体验,所以为了更好的适配开发者需要创建不同的layout文件。具体参考以下结构:
Create Different Bitmaps
创建了不同的layout,这还不够,为了在不同屏幕显示相同效果的图片,开发者需要提供多套图片资源,这些不同密度的相同图片一定要具有相同的名字,这样在运行时Android系统才能根据手机的密度自动加载相应的图片。具体可参考以下结构:
支持不同平台版本
Android 版本更新之后,开发者仍需要兼容低版本机型,为了兼容更多版本,需要从以下几点入手:
指定最低运行版本和目标运行版本
检查系统运行时版本
为了避免高版本的组件运行在低版本手机出现崩溃情况,我们在使用新API中的组件或者方法时,必须判断运行时版本,在Android的Build类中提供了各个版本的唯一代码,开发者可以在自己的代码中直接调用。
使用平台样式和主题
Android提供了一些主题和样式,开发者可以在清单文件中应用这些主题,使用了这些内置的样式和主题,APP自然会跟着每一个新版本的变化展示最新版本的外观。
为了让APP支持多种语言版本,最好的办法就是将UI中显示的字符串提取出来并保存到一个资源文件中,Android在这方面已经做了支持,当你创建完一个Android项目之后,Android SDK工具将会创建一个名为res的目录,这个目录中存放的是项目中用到的资源文件,在创建之初,该文件夹下会有一些默认的文件,例如res/values/strings.xml,string.xml用来存放上面提到的字符串,这个文件中默认是中文的,开发者要想添加多语言支持,需要在res文件夹下创建相应的资源文件,例如values-es/strings.xml,为每一个区域添加字符串。Android在运行时会根据手机的基础设置来设置APP中显示的字符串。
例如: 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> 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>
支持不同的屏幕大小
要想支持不同的屏幕大小,开发者应该从以下两方面入手:
Create Different Layouts
官网提到目前屏幕的大小分为 small, normal, large, xlarge几类,除了大小之外,屏幕的横竖也会影响用户的体验,所以为了更好的适配开发者需要创建不同的layout文件。具体参考以下结构:
res/ layout/ # default (portrait) main.xml layout-land/ # landscape main.xml layout-large/ # large (portrait) main.xml layout-large-land/ # large landscape main.xml
Create Different Bitmaps
创建了不同的layout,这还不够,为了在不同屏幕显示相同效果的图片,开发者需要提供多套图片资源,这些不同密度的相同图片一定要具有相同的名字,这样在运行时Android系统才能根据手机的密度自动加载相应的图片。具体可参考以下结构:
res/ drawable-xhdpi/ awesomeimage.png drawable-hdpi/ awesomeimage.png drawable-mdpi/ awesomeimage.png drawable-ldpi/ awesomeimage.png
支持不同平台版本
Android 版本更新之后,开发者仍需要兼容低版本机型,为了兼容更多版本,需要从以下几点入手:
指定最低运行版本和目标运行版本
每一个新的版本的style都会有一些改变,为了让APP更好的利用这写改变,目标运行版本最好设置成最新的安卓版本。 <manifest xmlns:android="http://schemas.android.com/apk/res/android"> <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" /> </manifest>
检查系统运行时版本
为了避免高版本的组件运行在低版本手机出现崩溃情况,我们在使用新API中的组件或者方法时,必须判断运行时版本,在Android的Build类中提供了各个版本的唯一代码,开发者可以在自己的代码中直接调用。
private void setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); } }
使用平台样式和主题
Android提供了一些主题和样式,开发者可以在清单文件中应用这些主题,使用了这些内置的样式和主题,APP自然会跟着每一个新版本的变化展示最新版本的外观。
相关文章推荐
- app支持多屏幕尺寸和多系统版本和多语言
- android学习笔记1:支持多种语言多种屏幕多种平台版本
- window上搭建Eclipse && 支持多语言 && 支持多分辨率layout && 支持多分辨率图标 && appcompat v7报错
- InstallAnywhere Standard版本支持的语言
- CYQ.Blog(QBlog) 单用户版本V3.0 发布下载[免费,简洁,高性能,双语言,8套皮肤,4种数据库支持]
- APP支持不同的设备 之 支持不同的语言
- Mac App Store应用商店支持软件版本回滚
- zencart.139h 版本不支持多语言解决办法。
- 快速升级App支持iOS6及iPhone5的4寸屏幕
- 快速升级App支持iOS6及iPhone5的4寸屏幕
- Android 屏幕,语言,API版本 适配和兼容性
- 如何制作多语言dll支持应用程序多语言版本
- CYQ.Blog(QBlog) 单用户版本V3.0 发布下载[免费,简洁,高性能,双语言,8套皮肤,4种数据库支持]
- 让android支持不同的语言、屏幕
- InstallShield Premier版本支持的语言
- CYQ.Blog(QBlog) 单用户版本V3.0 发布下载[免费,简洁,高性能,双语言,8套皮肤,4种数据库支持]
- iPhone APP支持多国语言开发(本地化)
- APP支持不同的设备 之 支持不同版本的平台
- Lync Web App支持的操作系统及浏览器版本
- [20081226更新(加了日文版本支持)]一个JavaScript WEB日历控件,支持IE6,FireFox,可支持不同语言版本,目前支持中文简繁,英,日语