Android支持不同的设备

xiaoxiao2021-02-28  105

因为我看的是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">
转载请注明原文地址: https://www.6miu.com/read-85687.html

最新回复(0)