【问题标题】:getDisplayMetrics().density vs dpgetDisplayMetrics().density 与 dp
【发布时间】:2015-03-19 08:38:00
【问题描述】:

这两个在数学方面做同样的事情吗?它们产生相同的结果吗?

Java:

pixel=10;
margin=px * getResources().getDisplayMetrics().density;
layout_param.topMargin=margin;

XML:

android:layout_marginTop="10dp"

【问题讨论】:

    标签: android margin


    【解决方案1】:

    是的,getDisplayMetrics() 中的密度是documentation 之后用于倾角单位的密度:

    公众持股量

    在 API 级别 1 中添加了显示的逻辑密度。这是一个 密度无关像素单元的比例因子,其中一个 DIP 是大约 160 dpi 屏幕上的一个像素(例如 240x320, 1.5"x2" 屏幕),提供系统的基线 展示。因此,在 160dpi 屏幕上,此密度值为 1;在一个 120 dpi 屏幕将是 0.75;等等

    这个值并不完全符合真实的屏幕尺寸(由 xdpi 和 ydpi,而是用于缩放整个 UI 的大小 根据显示 dpi 的总体变化分步进行。例如,一个 240x320 屏幕的密度为 1,即使其宽度为 1.8", 1.3" 等。但是,如果屏幕分辨率增加到 320x480 但屏幕尺寸保持为 1.5"x2",那么密度将为 增加(可能到 1.5)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      • 1970-01-01
      相关资源
      最近更新 更多