zoukankan      html  css  js  c++  java
  • 再次了解android中屏幕尺寸,单位等

    android设备多种多样,要让你的app能够适配所有的屏幕是一件很痛苦的事情,在做适配之前我们首先需要了解android中dimension的定义

    android中dimension是如何定义的?

    android中支持的dimension单位有px,in,mm,pt,dp,sp,常用到有px,dp,sp

    1. px

    Pixels: 对应于屏幕上的实际像素。但是并不建议使用这个单位,因为每个设备的每英寸对应的像素数量都有可能不同,并且每个设备屏幕上可用的总像素也是不同的。

    2. dp

    Density-independent Pixels : dp是一种基于屏幕物理密度的单位,这个单位是基于160dpi(每英寸像素点数)的屏幕,即在160dpi的屏幕上1dp大约等于1px。在不同dpi上运行时,每1dp上绘制或者需要pixels是不一样的,在高于160dpi的屏幕上,等比放大,相反,在小于160dpi的屏幕上,等比缩小。用dp作为单位将会是一个最简单的方式来适配不同的屏幕密度。也就是说dp提供了会不同尺寸的UI元素统一的可能.

    3. sp

    Scale-independent Pixels : sp单位与dp一致,不同点的是,sp单位是支持scale的,当用户在设置中调整标准字体大小时,每一sp对应的px将会改变.

    android中屏幕尺寸是如何定义的?

    Screen Size

    即实际物理的尺寸,按照大小区分为4类,按照width即短边为准

    xlarge screens are at least 960dp x 720dp

    large screens are at least 640dp x 480dp

    normal screens are at least 470dp x 320dp

    small screens are at least 426dp x 320dp

    Screen density

    即屏幕密度,定义每dp对应的px数量,已160dpi为标准,1dp = 1px

    ldpi (low) ~120dpi

    mdpi (medium) ~160dpi

    hdpi (high) ~240dpi

    xhdpi (extra-high) ~320dpi

    xxhdpi (extra-extra-high) ~480dpi

    xxxhdpi (extra-extra-extra-high) ~640dpi

    官网截图

    各种单位换算(https://www.pixplicity.com/dp-px-converter)

    px = (dpi / 160) * dp

    假设用户不调整字体大小的情况下
    mdpi 对应的是160dpi,1dp = 1px = 1sp

    学会勇敢
  • 相关阅读:
    Swing 2
    Swing 1
    集合
    关于sql 模糊字段查询语句
    关于前端开发的几篇文章
    黄金点游戏
    word count
    四则运算
    软件工程——《构建之法》读后困惑
    自我介绍
  • 原文地址:https://www.cnblogs.com/Sir-Lin/p/7841233.html
Copyright © 2011-2022 走看看