美文网首页
Android如何适配不同设备

Android如何适配不同设备

作者: CodeMyLove | 来源:发表于2017-05-19 11:10 被阅读135次

支持不同的设备

支持不同的语言

其实就是在res中创建不同的语言文件夹,例如:

    res/
       values/
           strings.xml
       values-es/
           strings.xml
       values-fr/
           strings.xml

然后创建对应的语言文件即可

支持不同分辨率的设备

创建不同的布局文件

android 对于屏幕分类使用两种特性:size和density;我们的APP应该对不同大小和分辨率的设备都做适配;
主要有四种大小:small, normal, large, xlarge
四种分辨率:low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)
跟语言一样,也是在不同的文件夹中放置这些布局文件就可以了。另外,因为会有横屏和竖屏两种模式,所以说为了最佳的用户体验,我们的许多APP都应该修改布局来适配不同的模式。

MyProject/
    res/
        layout/              # default (portrait)
            main.xml
        layout-land/         # landscape
            main.xml
        layout-large/        # large (portrait)
            main.xml
        layout-large-land/   # large landscape
            main.xml

名字必须是相同的,这样子在代码初始化的时候就会根据屏幕的大小自动选择相应的布局文件了,而且会自动根据屏幕的方向来决定使用landscape(横屏模式)还是portrait(竖屏模式)

android 3.2以上支持一个可以定义屏幕大小的高级方法,它能让你根据密度无关像素的最小宽度和高度来指定不同的资源

创建不同的Bitmaps

提供不同分辨率的bitmap资源来适应不同的密度(?):

  • xhdpi: 2.0
  • hdpi: 1.5
  • mdpi: 1.0 (baseline)
  • ldpi: 0.75
    意思就是说,如果你对xhdpi尺寸的设备生成了一张200200的图片,那就应该生成同样的资源——150150(hdpi)、100x100(mdpi)、 75x75(ldpi)。
    文件的分布如下
MyProject/
    res/
        drawable-xhdpi/
            awesomeimage.png
        drawable-hdpi/
            awesomeimage.png
        drawable-mdpi/
            awesomeimage.png
        drawable-ldpi/
            awesomeimage.png

任何时候,你引用 @drawable/awesomeimage ,系统都会基于屏幕的分辨率选择适当的bitmap。

ldpi分辨率的资源不一定要用上,因为系统会自动的对hdpi的资源按比例缩小一半以适配ldpi的屏幕

支持不同的平台版本

指定最小和目标API Levels

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
    ...
</manifest>

一般在AndroidManifest.xml中使用 <uses-sdk> 这个元素标签来定义应用兼容的最低的APIlevel(minSdkVersion)和最高的API Level(targetSdkVersion)

实时检查系统版本

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);
    }
}

如代码所展示的那样,你可以通过Build这个类来判断APP现在运行的版本

相关文章

  • Android如何适配不同设备

    支持不同的设备 支持不同的语言 其实就是在res中创建不同的语言文件夹,例如: 然后创建对应的语言文件即可 支持不...

  • Android 三种适配方案

    适配缘由 做Android开发一定会碰到适配这个问题,在Android世界里,Android设备太多了,手机,平板...

  • 教你快速使用AndroidStudio制作出一张合格.9图片

    前言#### 在实际的Android开发项目中,为了适配不同分辨率的Android设备,经常会碰到制作.9图片的情...

  • Android 适配总结

    Android设备多,品牌多,尺寸多,系统版本分布大,碎片化严重。Android的适配包括系统的适配和屏幕的适配等...

  • sw屏幕适配

    在Android设备中,适配是一个最普遍的问题,Android中因为屏幕分辨率的不同,会导致我们UI的显示会...

  • 设备类型判断 - iOS

    日常开发中会遇到不同设备机型适配的问题,那么如何进行设备类型的区分具体请看如下:其中 UIUserInterfac...

  • Android 屏幕适配

    1.关于 Android 屏幕适配 1.1 什么是 Android 屏幕适配 使得一些元素在 Android 不同...

  • Android 常见适配对比

    参考 Android 目前最稳定和高效的UI适配方案 dp适配 优点 满足90%设备 缺点 个别机型需要单独适配另...

  • android 最全屏幕适配方案-自定义实现谷歌百分比布局

    为什么要屏幕适配? 因为Android设备的碎片化严重,导致app的界面元素在不同分辨率的设备屏幕尺寸上显示不一致...

  • 页面适配不同设备

    pc端和移动端分别设计开发 ** 缺点 **: 维护成本较大; pc和手机端用两套html、css、js文件,修改...

网友评论

      本文标题:Android如何适配不同设备

      本文链接:https://www.haomeiwen.com/subject/accyxxtx.html