美文网首页
Android屏幕适配

Android屏幕适配

作者: DT慕枫 | 来源:发表于2020-11-24 17:16 被阅读0次

    为什么要屏幕适配

    由于Android系统的开放性,任何用户、开发者、OEM厂商、运营商都可以对Android进行定制,于是导致运行 Android 的设备多种多样,它们有着不同的屏幕尺寸和像素密度。 尽管系统可通过基本的缩放和调整大小功能使界面适应不同屏幕,但您应做出进一步优化,以确保界面能够在各类屏幕上美观地呈现。


    碎片化

    首先我们要搞清楚,几个比较重要的概念。

    屏幕尺寸

    屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米

    比如常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等

    屏幕分辨率

    屏幕分辨率是指在横纵向上的像素点数,单位是px,1px=1个像素点。一般以纵向像素*横向像素,如1960*1080。表示宽度方向上有1080个像素点,在高度方向上有1920个像素点

    1.单位:px(pixel),1px=1像素点
    2.Android手机常见的分辨率:320x480、480x800、720x1280、1080x1920
    3.UI设计师的设计图会以px作为统一的计量单位

    屏幕的像素密度

    屏幕像素密度是指每英寸上的像素点数,单位是dpi,即“dot per inch”的缩写。屏幕像素密度与屏幕尺寸和屏幕分辨率有关,在单一变化条件下,屏幕尺寸越小、分辨率越高,像素密度越大,反之越小。

    假设设备内每英寸有160个像素,那么该设备的屏幕像素密度=160dpi。安卓手机对于每类手机屏幕大小都有一个相应的屏幕像素密度。

    密度类型 代表的分辨率(px) 屏幕像素密度(dpi)
    低密度(ldpi) 240x320 120
    中密度(mdpi) 320x480 160
    高密度(hdpi) 480x800 240
    超高密度(xhdpi) 720x1280 320
    超超高密度(xxhdpi) 1080x1920 480

    屏幕尺寸、分辨率、像素密度三者关系

    一部手机的分辨率是宽x高,屏幕大小是以寸为单位,那么三者的关系是:


    关系

    密度无关像素

    density-independent pixel,叫dp或dip,与终端上的实际物理像素点无关。可以保证在不同屏幕像素密度的设备上显示相同的效果。

    1.Android开发时用dp而不是px单位设置图片大小,是Android特有的单位
    2.场景:假如同样都是画一条长度是屏幕一半的线,如果使用px作为计量单位,那么在480x800分辨率手机上设置应为240px;在320x480的手机上应设置为160px,二者设置就不同了;如果使用dp为单位,在这两种分辨率下,160dp都显示为屏幕一半的长度。

    dp与px的转换

    px = dp * (dpi / 160)

    密度类型 代表的分辨率(px) 屏幕密度(dpi) 换算(px/dp) 比例
    低密度(ldpi) 240x320 120 1dp=0.75px 3
    中密度(mdpi) 320x480 160 1dp=1px 4
    高密度(hdpi) 480x800 240 1dp=1.5px 6
    超高密度(xhdpi) 720x1280 320 1dp=2px 8
    超超高密度(xxhdpi) 1080x1920 480 1dp=3px 12

    在Android中,规定以160dpi(即屏幕分辨率为320x480)为基准:1dp=1px

    独立比例像素

    sp,即scale-independent pixels,与dp类似,但是可以根据文字大小首选项进行放缩,是设置字体大小的御用单位。

    解决方案

    使用备用布局 -使用限定符

    • 尺寸(size)限定符
    • 使用最小宽(Smallest-width)度限定符
    • 布局别名
    • 屏幕方向(Orientation)限定符

    详情

    使用最小宽度限定符

    使用“最小宽度”屏幕尺寸限定符,您可以为具有最小宽度(以dp 或 dip 为度量单位)的屏幕提供备用布局。

    通过将屏幕尺寸描述为密度无关像素的度量值,Android 允许您创建专为非常具体的屏幕尺寸而设计的布局,同时让您不必对不同的像素密度有任何担心。

    例如,您可以创建一个名为 main_activity 且针对手机和平板电脑进行了优化的布局,方法是在目录中创建该文件的不同版本,如下所示:

        res/layout/main_activity.xml           # For handsets (smaller than 600dp available width)
        res/layout-sw600dp/main_activity.xml   # For 7” tablets (600dp wide and bigger)
    

    最小宽度限定符指定屏幕两侧的最小尺寸,而不考虑设备当前的屏幕方向,因此这是一种指定布局可用的整体屏幕尺寸的简单方法。

    下面是其他最小宽度值与典型屏幕尺寸的对应关系:

    • 320dp:典型手机屏幕(240x320 ldpi、320x480 mdpi、480x800 hdpi 等)。
    • 480dp:约为 5 英寸的大手机屏幕 (480x800 mdpi)。
    • 600dp:7 英寸平板电脑 (600x1024 mdpi)。
    • 720dp:10 英寸平板电脑(720x1280 mdpi、800x1280 mdpi 等)。
      下图提供了一个更详细的视图,说明了不同屏幕 dp 宽度与不同屏幕尺寸和方向的一般对应关系。


      对应关系

    相关文章

      网友评论

          本文标题:Android屏幕适配

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