Android屏幕适配与版本适配

兼容不同的屏幕大小
Supporting Different Screens

Android中设备的屏幕通过两种方式分类 :尺寸和分辨率

四种通用的尺寸:small, normal, large, xlarge----这些对应于布局

四种通用的分辨率:low(ldpi), medium(mdpi), high(hdpi), extra high(xhdpi)----这些对应于图片

要想你定义的布局和布局中的图片正常显示在不同的屏幕上,就必须把各种类型的资源文件放在各种不同的目录下,另外,还要把屏幕方向的变化也看成是屏幕尺寸的变化。

一、创建不同的布局文件

为了提升用户在不同屏幕尺寸下的体验,你得为每一个你要支持的设备的尺寸创建一个独立的布局文件,放在合适的资源目录下,资源目录命名时,用-<屏幕尺寸>作为后缀,例如,对应于大屏,
Layout文件得位于res/layout-large目录下。其它尺寸的布局文件也按此方法存放,用的时候跟平常没区别。

系统会中根据当前屏幕的尺寸加载最合适的资源目录。

还有一种目录结构是这样的:
MyProject/
    res/
        layout/
            main.xml
        layout-land/
            main.xml
默认情况,Layout/main.xml文件是在竖屏模式下使用,但是如果你想在手机横屏的时候展现一种不一样的布局,就得同时创建layout-land和layout-large两个目录

二、创建不同的Bitmaps

对于不同的分辨率,要总是提供缩放合适的图片资源以帮助应用获得好的体验。
用下面的缩放尺寸为每一种分辨率生成图片:
xhdpi:2.0   hdpi:1.5   mdpi:1.0 (基线) ldpi:0.75
也就是说,如果你为xhdpi的设备生成了一张200*200的图片,那么就得为hdpi的设备生成150*150,
 100x100 for mdpi, and 75x75 for ldpi devices.
然后把弄好的图片资源放到以下的目录结构中:
res/
        drawable-xhdpi/
            awesomeimage.png
        drawable-hdpi/
            awesomeimage.png
        drawable-mdpi/
            awesomeimage.png
        drawable-ldpi/
            awesomeimage.png
这样,在任何情况下,你引用@drawable/awesomeimage的时候,系统就会选择合适的图片加载。

兼容不同的平台版本

Supporting Different Platform Versions

如何在发挥最新API的优势的同时,继续兼容老的版本呢?
一、指定最小和目标API级别
Android的清单文件中详细描述了支持的版本情况,其中有两个属性:minSdkVersion和targetSdkVersion分别定义了当前应用兼容的最低版本和最高版本,为了使应用展现最新的功能,建议把最高版本设置成最新版本。

二、运行时检查系统版本
在Build静态类中,提供了唯一的平台版本号,可以用如下方法得到当前系统的API版本号
Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB(3.0)
三、使用当前平台的样式和主题 
在清单文件中,可以使用系统自带的样式和主题,这些样式和主题会随着系统的变化而变化

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 <application>element:

<application android:theme="@style/CustomTheme">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值