设备兼容性

设备功能

<manifest ... >
        <uses-feature android:name="android.hardware.sensor.compass"
                      android:required="true" />
        ...
</manifest>

    PackageManager pm = getPackageManager();
    if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
        // This device does not have a compass, turn off the compass feature
        disableCompassFeature();
    }    

平台版本

if (uild.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
        // Running on something older than API level 11, so disable
        // the drag/drop features that use <code><a href="/reference/android/content/ClipboardManager.html">ClipboardManager</a></code> APIs
        disableDragAndDrop();
    }

屏幕配置

Android 为每种设备定义了两个特征:屏幕尺寸(屏幕的物理尺寸)和屏幕密度(屏幕上像素的物理密度,称为 DPI)。为了简化不同的配置,Android 将这些变体归纳成组,使它们更容易作为定位目标:

  • 四种广义的尺寸:小、标准、大和特大。
  • 还有几种广义的密度:mdpi(中)、hdpi(高)、xhdpi(超高)、xxhdpi(超超高)等。

屏幕兼容性:

灵活布局 您必须遵循一项核心原则,即避免对界面组件的位置和大小进行硬编码

备用布局 Android 允许您提供备用布局文件,而系统会在运行时根据当前设备的屏幕尺寸应用这些文件

可拉伸图像  .9.png

密度独立性性

备用位图

矢量图形

使用布局别名

如果同时支持低于和高于 Android 3.2 的版本,您必须同时对布局使用最小宽度限定符和“large”限定符。因此,您应创建一个名为 res/layout-large/main.xml 的文件,该文件可能与 res/layout-sw600dp/main.xml 完全相同。

为避免同一文件出现这种重复,您可以使用别名文件。例如,您可以定义以下布局:

    res/layout/main.xml            # single-pane layout
    res/layout/main_twopanes.xml   # two-pane layout
    

并添加以下两个文件:

  • res/values-large/layout.xml

        <resources>
            <item name="main" type="layout">@layout/main_twopanes</item>
        </resources>
        
  • res/values-sw600dp/layout.xml

        <resources>
            <item name="main" type="layout">@layout/main_twopanes</item>
        </resources>
        

这两个文件的内容完全相同,但它们实际上并未定义布局,而只是将 main 设置为 main_twopanes 的别名。由于这些文件具有 large 和 sw600dp 选择器,因此它们适用于任何 Android 版本的平板电脑和电视(低于 3.2 版本的平板电脑和电视与 large 匹配,高于 3.2 版本者将与 sw600dp 匹配)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lyglostangel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值