zoukankan      html  css  js  c++  java
  • 安卓 px,dpi,dp,ps的区别与联系

    1.px(pixel):px也叫像素,1px代表屏幕上的一个像素点,通常所说的分辨率480*320表示屏幕竖直方向有480个px,水平方向有320个px。是构成dpi、dp、sp的基础。

    2.dpi(dots per inch):即屏幕对角线每英寸的像素点个数。假设有一台5寸(手机屏幕对角线长度)手机,高和宽分别为4寸和3寸,手机分辨率为640*480,代表屏幕竖直方向有640个px,水平方向有480个px,对角线方向有800个px,那么dpi = 800/5 = 160。

    3.dp(device independent pixels):Android规定在dpi = 160时,1dp = 1px。当dpi为x时,1dp = (x/160)px,例如x = 320dpi时,1dp = 2px。通常用于控件的尺寸大小。(dp最后还是要转换成px,因为px才是表示实际的大小)

    4.sp(scale independent pixels):sp和dp很类似,区别在于当用户设置文字尺寸为“正常”时1sp = 1dp,当设置为“大”或“超大”时1sp>1dp。通常用于文字的尺寸大小。

    一:为何定义控件大小时推荐使用dp而不是px?

    假设有两台5寸手机A和B,它们的物理尺寸为4*3寸,但是分辨率不同,A手机分辨率为640*480,B手机分辨率为1280*960。那么A手机的dpi = 160,B手机的dpi = 320。所以在A手机上1dp = 1px,在B手机上1dp = 2px。

    假设在A和B手机上分别定义一个控件,高为20dp,宽为100dp,那么在A手机上该控件的高为20px,宽为100px,在B手机上该控件的高为40px,宽为200px,虽然在B手机上该控件占的px更多,但是该控件在A和B手机上的实际物理大小是一样的,这就实现了设备分辨率无关,在不同分辨率的手机上自动适配。

    而如果使用px来定义控件大小,那么即使手机的物理尺寸相同,但由于手机分辨率不同,控件呈现的实际物理大小就会不一样。

  • 相关阅读:
    ThreadPoolExecutor线程池参数设置技巧
    CountDownLatch与join的区别和联系
    数据库的隔离级别
    Spring事务管理的demo
    Java中isAssignableFrom的用法
    Java注解的基本概念和原理及其简单实用
    System.getProperty("line.separator") 是什么意思?
    关于“100g文件全是数组,取最大的100个数”解决方法汇总
    Intellij IDEA 添加jar包的三种方式
    亿级Web系统搭建 Web负载均衡的几种实现方式(阿里)
  • 原文地址:https://www.cnblogs.com/linwenbin/p/android.html
Copyright © 2011-2022 走看看