问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android属性中的px,sp,dip有什么区别?

发布网友 发布时间:2022-04-30 02:04

我来回答

2个回答

热心网友 时间:2022-06-28 17:25

  显示单位px和dip以及sp的区别

  dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。

  px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。

  pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;

  sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。

  由此,根据 google 的建议,TextView 的字号最好使用 sp 做单位,而且查看
  TextView
  的源码可知 Android 默认使用 sp 作为字号单位。

  ###################################################################

  关于换算(以 sp 和 pt 为例)
  查看 TextView 等类的源码,可知:

  case COMPLEX_UNIT_PX:
  return value;
  case COMPLEX_UNIT_SP:
  return value * metrics.scaledDensity;
  case COMPLEX_UNIT_PT:
  return value * metrics.xdpi * (1.0f/72);

  --------------------------
  scaledDensity = DENSITY_DEVICE / (float) DENSITY_DEFAULT;
  xdpi = DENSITY_DEVICE;

  --------------------------
  DENSITY_DEFAULT = DENSITY_MEDIUM = 160;

  ============================================
  所以: 假设 pt 和 sp 取相同的值 1,则可设 1pt 和 1sp 之间系数为 x,

  1 * DENSITY_DEVICE / 72 = x * 1 * DENSITY_DEVICE / 160 =>
  x = 160 / 72 = 2.2222

  也就是说在 Android 中, 1pt 大概等于 2.22sp

  以上供参考,如果 UI 能够以 sp 为单位提供设计是最好的,如果设计中没有 sp
  的概念,则开发人员也可以通过适当的换算取近似值。

  什么是Dip和 Sp

  过去,程序员通常以像素为单位设计计算机用户界面。例如,定义一个宽度为300像素的表单字段,列之间的间距为5个像素,图标大小为16×16像素 等。这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面会显得很小。在有些情况下,用户界面可能会小到难以看清 内容。

  与分辨率无关的度量单位可以解决这一问题。Android支持下列所有单位。

  px(像素):屏幕上的点。

  in(英寸):长度单位。

  mm(毫米):长度单位。

  pt(磅):1/72英寸。

  dp(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。

  dip:与dp相同,多用于 android/ophone示例中。

  sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。

  为了使用户界面能够在现在和将来的显示器类型上正常显示,建议大家始终使用sp作为文字大小的单位,将dip作为其他元素的单位。当然,也可以考虑使用矢量图形,而不是用位图。

参考资料:来自网络

热心网友 时间:2022-06-28 17:26

android属性中的px,sp,dip的区别:

px: pixels(像素)。不同设备显示效果相同,一般HVGA代表320x480像素,这个用的比较多。

sp: scaled pixels(放大像素)。主要用于字体显示best for textsize。

dip: device independent pixels(设备独立像素)。不同设备有不同的显示效果,这个和设备硬件有关,一般为了支持WVGA、HVGA和QVGA 一般使用这个,不依赖像素。

  像素是指基本原色素及其灰度的基本编码。像素是构成数码影像的基本单元,通常以像素每英寸PPI(pixels per inch)为单位来表示影像分辨率的大小。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
厂口银杏园地址在哪里? 昆明银杏大道在什么地方 昆明哪些地方有银杏树 从二月河“帝王三部曲”看90年代的文学场(一) 二月河《落霞三部曲》读书札记 安装织梦CMS到新浪SAE,这数据库主机,用户都是什么?这个是安装在新浪SE... SAE上的mySql初始化了怎么用啊,java怎么连上去啊,地址,端口号,账号... 金鱼尾部出现血丝,怎么办? 金鱼尾鳍上有血丝,急躁不安是什么病 请问?家里养的金鱼,一夜过来,金鱼尾巴上面都有红色血丝是怎么回事... u盘格式化对U盘有什么样子伤害 为什么有不少国产安卓机获取到的xdpi和ydpi是错的 U盘格式化为ntfs格式会有危害吗? 云南给人的感觉怎么样? android关于几个drawable文件夹的区别 云南怎么样 云南怎么样? mdpi,hdpi,xhdpi,xxhdpi这四种格式的像素分别是多少? 云南方言的这句话是什么意思啊?云南红河的朋友帮忙解答下 u盘格式化对U盘有多大的伤害 从qq里找了一份兼职但是我我也好不放心? 云南样样好实业有限公司怎么样? QQ上面说的QQ兼职是不是真的, U盘格式化会伤害盘吗 西双版纳话说的样样好什么意思? QQ上的同城服务里学生兼职准不准? 楚雄人喝酒为什么要说样样好 格式化对U盘有害吗? 企点qq上的兼职都是真的吗? 我的QQ怎么回事,QQ搜索兼职都找不到,我不信成都一个城市没有一个兼职群 U盘经常格式化有损害吗? 人生超过1.5年的时间在厕所度过,“世界厕所日”的起源是怎样的? 你眼中的云南是什么样的? 云南人怎么样?了解下? 如何获取触摸屏某个区域内的dpi个数? 去过云南的朋友,觉得云南怎么样 uv打印机printexp控制软件里的刺激喷嘴是什么意思和作用 云南啥意思? 为什么手机软件越做越大? 世界厕所日在什么时候? 云南的特色? 写真机上这三种数据与打印速度的关系,以及彼此的关系! 云南怎么样,云南有什么好玩的地方 上厕所还有节日,为什么现在奇怪的节日越来越多了? android中pt怎么转成sp 武藤机Subtank refill怎么处理? “世界厕所日”,这一天你会做什么? 怎样适应不同的屏幕尺寸 2020年世界厕所日的主题是什么? android里 建了个layout-xhdpi-1280x720,结果1920x1080分辨率的手机会调用到这个类,求解