android studio for android learning (四) 兼容性问题
2016-05-21 16:12
465 查看
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.xml layout-large/ main.xml
引用这个文件时,你可以这样做
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }
对于自己提供的文件(landscape),如何告诉系统选择?如下布局即可。
MyProject/ res/ layout/ main.xml layout-land/ main.xml
如何布局多种属性?例如:large+landscape
MyProject/ res/ layout/ # default (portrait) main.xml layout-land/ # landscape main.xml layout-large/ # large (portrait) main.xml layout-large-land/ # large landscape main.xml
3.3常见和密度尺寸low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)。这意味着同一个文件你要提供多次,保证适合不同的屏幕尺寸。
MyProject/ res/ drawable-xhdpi/ awesomeimage.png drawable-hdpi/ awesomeimage.png drawable-mdpi/ awesomeimage.png drawable-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 APIs if (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高级编程之加载大图片到内存
- Android 利用xml实现各种样式等
- Android开发之Intent.Action
- Android动画的使用点滴
- AndroidStudio配置SVN以及使用代码管理
- Android自定义View之绘制闪动的文字
- [分享]mac如何把本地Android项目提交到github
- Android_滚动状态ScrollView实现标题的悬浮和渐隐
- Android中Widget (微件、小组件)
- android 动画 ——alpha、scale、translate、rotate、set的xml属性及用法
- Android错误记录——layout文件无法加载
- Android同一个TevtView显示不同颜色的文字,添加不同的点击事件。
- Android开发实践 数据存储 学习、应用、总结
- android图像处理(一)
- Android中实现定时器的3中方法
- Android获取本机IP地址,绝对可行
- Android Socket(简单的字符串)
- Android中drawable各个属性讲解
- Android Studio 报错:Your project path contains non-ASCII characters.
- [问题]mac执行adb命令出现adb: command not found解决方法