您的位置:首页 > 移动开发 > Android开发

Android支持不同的设备

2017-07-11 21:41 302 查看
因为我看的是android的官方文档,这里就根据官方文档的内容来写。

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">
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android