android studio for android learning (四) 兼容性问题
1.如何支持不同的设备,主要从下面几个方面来看
- 支持不同的语言
- 支持不同的屏幕尺寸
- 支持不现的平台版本(如android的版本)
2.语言兼容:支持不同的语言,这个比较简单,具体可以看下面图中所示,按这个设置进行下就好了。
效果图,可以按这种方式来添加其它的多种语言,本文最后的附录中增加了常见的语言间的对应关系。
3.屏幕尺寸兼容,我们知道android应用在我们生活的各个方面,如何适应各种应用场景下的屏幕尺寸是我们接下来讨论的事情。
3.1 android的屏幕尺寸中有两个重要的属性,尺寸(size)和 密度(density),一个好的APP由合适的尺寸和密度组成。
3.2在一个android项目中,常见的尺寸有下面几种,small, normal, large, xlarge。为了支持不同的屏幕,必须创建相应xml布局支持文件,文件目录的后缀是尺寸结尾(small, normal, large, xlarge),这样android系统就可以根据屏幕尺寸来选择适合的布局文件,如下所示目录结构,注意文件名必须保持一致。
MyProject/res/layout/main.xmllayout-large/main.xml
引用这个文件时,你可以这样做
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);
}
对于自己提供的文件(landscape),如何告诉系统选择?如下布局即可。
MyProject/res/layout/main.xmllayout-land/main.xml
如何布局多种属性?例如:large+landscape
MyProject/res/layout/ # default (portrait)main.xmllayout-land/ # landscapemain.xmllayout-large/ # large (portrait)main.xmllayout-large-land/ # large landscapemain.xml
3.3常见和密度尺寸low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)。这意味着同一个文件你要提供多次,保证适合不同的屏幕尺寸。
MyProject/res/drawable-xhdpi/awesomeimage.pngdrawable-hdpi/awesomeimage.pngdrawable-mdpi/awesomeimage.pngdrawable-ldpi/awesomeimage.png
在每一次你使用@drawable/awesomeimage时,系统将会帮你做出正确的选择。
xhdpi: 2.0
hdpi: 1.5
mdpi: 1.0 (baseline)
ldpi: 0.75
ldpi不是必须的,因为只要你提供了hdpi,系统会直接减少一半的hdpi的密度来适应ldpi,现在最新版的SDK可能和上面所述不一样,但不影响我们对这部分的理解.
4.平台兼容性:支持不同的平台版本,这里是指android发面的平台,用来支持旧的平台,同时引入新的平台,在 AndroidManifest.xml 这个文件中指示了我们支持的最低和最高版本,如下所示
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... ><uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />...
</manifest>
为了更好的使用android这个平台,我们可以对现有的版本进行检查。
private void setUpActionBar() {// Make sure we're running on Honeycomb or higher to use ActionBar APIsif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {ActionBar actionBar = getActionBar();actionBar.setDisplayHomeAsUpEnabled(true);}
}
当然你可用不同的属性
- To make your activity look like a dialog box:
<activity android:theme="@android:style/Theme.Dialog">
- To make your activity have a transparent background:
<activity android:theme="@android:style/Theme.Translucent">
- To apply your own custom theme defined in /res/values/styles.xml:
<activity android:theme="@style/CustomTheme">
- To apply a theme to your entire app (all activities), add the android:theme attribute to the element:
<application android:theme="@style/CustomTheme">
本文主要简单介绍了android相关的兼容性问题。
附录
1.android各种常见语言版本示例
Arabic, Egypt (ar_EG) —————————–阿拉伯语,埃及
Arabic, Israel (ar_IL) ——————————-阿拉伯语,以色列
Bulgarian, Bulgaria (bg_BG) ———————保加利亚语,保加利亚
Catalan, Spain (ca_ES) —————————加泰隆语,西班牙
Czech, Czech Republic (cs_CZ) —————–捷克语,捷克共和国
Danish, Denmark(da_DK) ————————丹麦语,丹麦
German, Austria (de_AT) ————————-德语,奥地利
German, Switzerland (de_CH) ——————-德语,瑞士
German, Germany (de_DE) ———————-德语,德国
German, Liechtenstein (de_LI) ——————德语,列支敦士登的
Greek, Greece (el_GR) —————————-希腊语,希腊
English, Australia (en_AU) ————————-英语,澳大利亚
English, Canada (en_CA) ————————–英语,加拿大
English, Britain (en_GB) —————————-英语,英国
English, Ireland (en_IE) —————————–英语,爱尔兰
English, India (en_IN) ——————————–英语,印度
English, New Zealand (en_NZ) ———————英语,新西兰
English, Singapore(en_SG) ————————–英语,新加坡
English, US (en_US) ———————————–英语,美国
English, Zimbabwe (en_ZA) ————————–英语,津巴布韦
Spanish (es_ES) —————————————-西班牙
Spanish, US (es_US) ———————————–西班牙语,美国
Finnish, Finland (fi_FI) ———————————芬兰语,芬兰
French, Belgium (fr_BE) ——————————-法语,比利时
French, Canada (fr_CA) ——————————-法语,加拿大
French, Switzerland (fr_CH) ————————–法语,瑞士
French, France (fr_FR) ——————————–法语,法国
Hebrew, Israel (he_IL) ———————————希伯来语,以色列
Hindi, India (hi_IN) ————————————-印地语,印度
Croatian, Croatia (hr_HR) —————————-克罗地亚语,克罗地亚
Hungarian, Hungary (hu_HU) ————————匈牙利语,匈牙利
Indonesian, Indonesia (id_ID) ————————印尼语,印尼
Italian, Switzerland (it_CH) —————————-意大利语,瑞士
Italian, Italy (it_IT) —————————————意大利语,意大利
Japanese (ja_JP) —————————————-日语
Korean (ko_KR) ——————————————朝鲜语
Lithuanian, Lithuania (lt_LT) ————————–立陶宛语,立陶宛
Latvian, Latvia (lv_LV) ———————————拉托维亚语,拉托维亚
Norwegian-Bokmol, Norway(nb_NO) —————挪威语,挪威
Dutch, Belgium (nl_BE) ——————————–荷兰语,比利时
Dutch, Netherlands (nl_NL) —————————荷兰语,荷兰
Polish (pl_PL) ——————————————-波兰
Portuguese, Brazil (pt_BR) —————————葡萄牙语,巴西
Portuguese, Portugal (pt_PT) ————————葡萄牙语,葡萄牙
Romanian, Romania (ro_RO) ————————罗马尼亚语,罗马尼亚
Russian (ru_RU) —————————————-俄语
Slovak, Slovakia (sk_SK) ——————————斯洛伐克语,斯洛伐克
Slovenian, Slovenia (sl_SI) —————————斯洛文尼亚语,斯洛文尼亚
Serbian (sr_RS) —————————————-塞尔维亚语
Swedish, Sweden (sv_SE) —————————-瑞典语,瑞典
Thai, Thailand (th_TH) ——————————–泰语,泰国
Tagalog, Philippines (tl_PH) ————————–菲律宾语,菲律宾
Turkish, Turkey (tr_TR) ——————————-土耳其语,土耳其
Ukrainian, Ukraine (uk_UA) ————————–联合王国
Vietnamese, Vietnam (vi_VN) ———————–越南语,越南
Chinese, PRC (zh_CN)——————————–中文,中国
Chinese, Taiwan (zh_TW)—————————–中文,台湾
android studio for android learning (四) 兼容性问题相关推荐
- Android Studio 插件开发详解四:填坑
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78265540 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...
- android studio设置Tab为四空格缩进
今天,简单讲讲android studio 如何设置代码的缩进为4空格. 其实也很简单,有人认为android studio使用Tab缩进也没有问题,这个在android studio上确实是没有问题 ...
- Android开发工具Android Studio、Android SDK和Genymotion完全配置
所谓"工欲善其事,必先利其器".Android Studio 是谷歌推出一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Androi ...
- 【Android Studio】Android Studio 搭建开发环境(Linux Ubuntu篇)
Windows篇:[Android Studio]Android Studio 搭建开发环境(Windows篇)_dandelionela的博客-CSDN博客 Ubuntu篇参考: Ubuntu 18 ...
- 【Android studio】Android studio的安装及模拟器(夜神)的连接
一.安装JDK,配置环境变量 在此之前jdk已经安装好了,因此不再进行安装,通过cmd命令行检查环境变量是否已经配置好: 进入cmd命令行,输入java –version查看java版本 从图中可以看 ...
- 【Android应用开发】Android Studio 简介 (Android Studio Overview)
一. Intelij IDEA 环境简介 Android Studio 来源 : Android Studio 是 Intelij IDEA 的免费版本 + Android SDK 集成的; -- I ...
- 使用Android Studio搭建Android集成开发环境
一.Android Studio简单介绍 2013年GoogleI/O大会首次发布了Android Studio IDE(Android平台集成开发环境).它基于Intellij IDEA开发环境,旨 ...
- android+图标+i_explore+无背景,Android Studio中Android Device Monitor中的File Explore不显示文...
环境:操作系统是Mac,模拟器 问题:Android Studio中Android Device Monitor中的File Explore不显示文件 本人在自学文件存储,想查看"dada/ ...
- 在Android Studio中将Android工程变为Library使用
在Android Studio中将Android工程变为Library使用 转载2016-03-28 10:43:58 有时候网上会有些工程格式不是我们想要的Library格式可以直接给AS使用.这时 ...
- android studio - 解决Android Studio不停的Indexing的问题
android studio - 解决Android Studio不停的Indexing的问题 参考文章: (1)android studio - 解决Android Studio不停的Indexin ...
最新文章
- Nginx 高可用集群解决方案 Nginx + Keepalived
- 企业想独立完成网站建设也不是不可以
- 由于分形导致的神经网络分类误差
- MySQL的insert into select 引发锁表
- 百练OJ:4151:电影节
- c++大作业迷宫游戏 规定时间内完成_小学生做作业磨蹭的7个原因及对策!太准了~...
- ADO.NET DataSet 数据模型
- 20145335 《信息安全系统设计基础》课程总结
- php 2m限制,取消php上传2M的限制
- 马化腾:整天在拍拍网上买东西,找感觉
- 阿里云IoT安全运营中心-Link SOC,安全运营托管功能发布
- 大数据分析有几种方法
- 超级简单Python学生信息管理系统设计与实现.zip(论文+项目源码+使用说明书)
- PowerShell复制粘贴快捷键
- csv to dbf java_将csv文件转换为dbf
- Python中使用print函数的三种输出方式
- cad断点快捷键_CAD中打断于点的快捷键
- 给出一个不多于五位的正整数,求出它是几位数
- 小话HTTP Authentication
- 16丨数据分析基础篇答疑
热门文章
- 对象的引用传递 ——面向对象3
- OAF_文件系列9_实现OAF解析Excel并读取至数据库JXL
- Android实现仿IOS带清空功能的文本输入框
- html 页面循环判断值,变量交换,判断有值、数字,for循环.html
- php 的sentmail支持ssl吗_php 的swoole 和websocket 连接wss
- 【枚举排列】生成1~n的排列生成可重集的排列
- 虚拟主机网站搬到服务器上,如何把网页文件放到云虚拟主机
- java nio 追加写文件_java.nio.file读写文件
- 谷歌插件开发ajax请求,2020-01-03(chrome插件:拦截ajax请求并修改返回结果)
- matlab 给参数赋值,未对输出参数赋值 求大神帮忙解惑