Android支持不同的设备
2017-07-11 21:41
302 查看
因为我看的是android的官方文档,这里就根据官方文档的内容来写。
Android支持不同的设备包括三个方面:支持不同的语言、支持不同的屏幕大小、支持不懂的版本。
1.支持不同的语言
android系统会获取手机用户在手机“设置”中的语言来和你写的代码进行匹配,来显示对应的语言。
添加对多语言的支持就需要在res文件夹下新建value目录,并且在文件名称末尾加上ISO的语言代码。例如value-zh就代表的中文。
一旦您决定了为哪些语言提供支持,便可创建资源子目录和字符串资源文件。 例如:
将各个语言区域的字符串值添加到相应文件中。例如:
英文(在android中values文件夹是默认的英文)
中文
但是中文分为繁体字和简体字,当你查询ISO语言代码时,中文有4个:
zh-tw 中文(中国台湾)
zh-cn 中文(中华人民共和国)
zh-hk 中文(中国香港特别行政区)
zh-sg 中文(新加坡)
这时候把values的文件命名写成values-zh-cn/或者写成values-zh_cn都是不正确的,甚至在运行时会报错,这时候就要在横杠后面加上一个小写的r并且小r后面的字母大写,例如 :values-zh-rCN/这就表示简体中文,values-zh-rHK/这就表示香港的繁体中文,……
2.支持不同的屏幕大小
Android设备的屏幕使用了2个属性:大小和密度。
大小主要是对于layout布局来说的,有四个尺寸:small, normal, large, xlarge
密度主要是对于Bitmap来说的,也有几个密度:low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)
他们的用法和drawable和mipmap相似都是在后边加上代表尺寸的单词(上边写的)
对于layout布局来说,应该如下进行命名
这些匹配系统会自动的进行匹配,你所关心的应该是布局的结构,不要使他发生太多变化。
这四个尺寸已经过时,有兴趣的可以去看一下新的尺寸命名格式。
对于Bitmap来说,控制他的实际是密度,最熟悉的命名就是drawable。
这里讲的这是对文件夹的扩展,并不是详细的讲系统适配,只是简单的涉及到了,以后会详细的讲一下适配。
3、支持不同的版本
在 AndroidManifest.xml文件中,可以对目标版本和最低版本进行控制,如下:
其中targetSdkVersion指的就是目标版本,就是告诉手机系统在此版本上你已经进行了完全测试,不用进行兼容性的活动,提高运行的效率,当手机版本大于这个值时,开启兼容性活动。
在代码中,根据系统提供的Build类来判断当前的系统版本,在代码中做进一步的处理。代码如下:
同时android还提供了样式和主题,而且这些主题是内置的,使应用程序具有底层操作系统的外观和感觉。例如
让你的activity看起来像一个dialog:
让你的activity有一个透明的背景:
允许你在 /res/values/styles.xml:中自定义theme:
要将主题应用到整个应用程序(所有活动):
Android支持不同的设备包括三个方面:支持不同的语言、支持不同的屏幕大小、支持不懂的版本。
1.支持不同的语言
android系统会获取手机用户在手机“设置”中的语言来和你写的代码进行匹配,来显示对应的语言。
添加对多语言的支持就需要在res文件夹下新建value目录,并且在文件名称末尾加上ISO的语言代码。例如value-zh就代表的中文。
一旦您决定了为哪些语言提供支持,便可创建资源子目录和字符串资源文件。 例如:
res/ values/ strings.xml values-zh/ strings.xml
将各个语言区域的字符串值添加到相应文件中。例如:
英文(在android中values文件夹是默认的英文)
/values/strings.xml
<resources> <string name="name">this my project</string> </resources>
中文
/values-zh/strings.xml这才是中文应该存在的文件夹
<resources> <string name="name">这是我的工程</string> </resources>
但是中文分为繁体字和简体字,当你查询ISO语言代码时,中文有4个:
zh-tw 中文(中国台湾)
zh-cn 中文(中华人民共和国)
zh-hk 中文(中国香港特别行政区)
zh-sg 中文(新加坡)
这时候把values的文件命名写成values-zh-cn/或者写成values-zh_cn都是不正确的,甚至在运行时会报错,这时候就要在横杠后面加上一个小写的r并且小r后面的字母大写,例如 :values-zh-rCN/这就表示简体中文,values-zh-rHK/这就表示香港的繁体中文,……
2.支持不同的屏幕大小
Android设备的屏幕使用了2个属性:大小和密度。
大小主要是对于layout布局来说的,有四个尺寸:small, normal, large, xlarge
密度主要是对于Bitmap来说的,也有几个密度:low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)
他们的用法和drawable和mipmap相似都是在后边加上代表尺寸的单词(上边写的)
对于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
这些匹配系统会自动的进行匹配,你所关心的应该是布局的结构,不要使他发生太多变化。
这四个尺寸已经过时,有兴趣的可以去看一下新的尺寸命名格式。
对于Bitmap来说,控制他的实际是密度,最熟悉的命名就是drawable。
res/ drawable-xhdpi/ awesomeimage.png drawable-hdpi/ awesomeimage.png drawable-mdpi/ awesomeimage.png drawable-ldpi/ awesomeimage.png
这里讲的这是对文件夹的扩展,并不是详细的讲系统适配,只是简单的涉及到了,以后会详细的讲一下适配。
3、支持不同的版本
在 AndroidManifest.xml文件中,可以对目标版本和最低版本进行控制,如下:
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
其中targetSdkVersion指的就是目标版本,就是告诉手机系统在此版本上你已经进行了完全测试,不用进行兼容性的活动,提高运行的效率,当手机版本大于这个值时,开启兼容性活动。
在代码中,根据系统提供的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还提供了样式和主题,而且这些主题是内置的,使应用程序具有底层操作系统的外观和感觉。例如
让你的activity看起来像一个dialog:
<activity android:theme="@android:style/Theme.Dialog">
让你的activity有一个透明的背景:
<activity android:theme="@android:style/Theme.Translucent">
允许你在 /res/values/styles.xml:中自定义theme:
<activity android:theme="@style/CustomTheme">
要将主题应用到整个应用程序(所有活动):
<application android:theme="@style/CustomTheme">
相关文章推荐
- 跟Google学习Android开发-起始篇-支持不同的设备(3)
- Android - 支持不同的设备 - 支持不同的平台版本
- Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的屏幕
- Android学习路线(十八)支持不同设备——支持不同的屏幕
- Android - 支持不同的设备
- [Android5 系列—] 3. 支持不同的设备
- 跟着Google学Android —— 2.1 孩子再多 也要兼顾 —— 支持不同设备
- Android开发基础教程 支持不同设备——支持不同(Android)平台版本
- Android - 支持不同的设备 - 支持不同的屏幕
- Android学习路线(十九)支持不同设备——支持不同(Android)平台版本
- 【Android Developers Training】 10. 序言:支持不同设备
- Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的平台版本
- 跟Google学习Android开发-起始篇-支持不同的设备(1)
- 一个根据android mark上的软件实时统计7天内对于不同大小不同分辨率的设备的支持的百分比的网站
- Android学习路线(十六)支持不同设备
- Android学习路线(十七)支持不同设备——支持不同的语言
- Android学习路线(十九)支持不同设备——支持不同(Android)平台版本号
- Android支持不同设备上的显示
- Android Training - 支持不同的设备
- Android 学习笔记五:支持不同的设备