测量单位 px、dip、dp 和 sp 的区别是什么?


当前回答

下面是Android使用的公式:

px = dp * (dpi / 160)

在哪里 dpi 是下列屏幕密度之一. 所有可能的密度列表请参阅这里

它定义了“DENSITY_*”的恒例。

ldpi (低) ~120dpi mdpi (中) ~160dpi hdpi (高) ~240dpi xhdpi (超高) ~320dpi xxhdpi (超高) ~480dpi xxxhdpi (超高) ~640dpi

从这里拿出来。

这将解决很多混乱,当翻译在px和dp之间,如果你知道你的屏幕dpi。

所以,让我们说你想要一个图像60dp的HDPI屏幕,然后物理像素大小60dp是:

px = 60 * (240 / 160)

其他回答

px = 指屏幕上的像素可用于像素计算 px = dp * (dpi / 160) 可用于 dip = 密度独立的像素相当于 dp sp = 只能用于文本

我只会使用DP。

有很多关于使用“sp”字体尺寸的谈话,虽然我欣赏这一点,我不认为这是从设计观点做正确的事情,你可以结束打破你的设计,如果用户有一些有趣的字体尺寸的选择,用户将最终责怪应用程序,而不是自己的生活选择。

此外,如果你在160dpi平板电脑上使用 sp-font 应用程序,你会发现一切都在扩展......但你的字体,这在比较中会看起来很小。

虽然“sp”字体的想法有一个好心,但这是一个糟糕的想法。

SDP - 一个可扩展的尺寸单位 - 基本上它不是一个单位,而是不同屏幕大小的尺寸资源。

在 Intuit 中尝试 sdp 图书馆. 解决单位问题非常方便,您可以快速支持多个屏幕。

使用

android:paddingBottom="@dimen/_15sdp" for positive and android:layout_marginTop="@dimen/_minus10sdp" for negative sdp sdp

它在每个尺寸的值-sw<N>dp 文件夹(sw = 最小Width)中具有相当值。

注意

在大多数情况下,你仍然需要为平板电脑设计不同的布局。

例子

<LinearLayout
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_marginTop="@dimen/_minus10sdp"
          android:paddingBottom="@dimen/_15sdp"
          android:orientation="horizontal" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:includeFontPadding="false"
                    android:text="♡"
                    android:textColor="#ED6C27"
                    android:textSize="@dimen/_70sdp"
                    android:textStyle="bold" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:includeFontPadding="false"
                    android:text="U"
                    android:textColor="@android:color/black"
                    android:textSize="@dimen/_70sdp" />
            </LinearLayout>

你可以用db为文本大小,但我更喜欢ssp为文本大小。

更多详细信息请参阅图书馆 GitHub 页面。

sp = 尺寸独立像素

dpi = 密度像素

sp 接收设备的文本大小,而 dp 接收设备密度标准(不会在设备中改变) 说 100sp 文本可以占用屏幕的 80% 或屏幕的 100% 取决于设备中设置的字体大小

使用 sp 和 dp 为 UX 考虑的文本大小。

此外,请注意,人们在手机上使用自定义字体,因此缺乏字体可能会导致空间和所有问题。 说文本大小12sp为自定义字体可能需要一些比默认字体额外的像素。

计算像素密度

密度独立性

屏幕像素密度和分辨率取决于平台,设备独立的像素和可扩展的像素是提供一个灵活的方式,以适应整个平台的设计。

计算像素密度 匹配英寸的像素数量被称为像素密度. 高密度屏幕每英寸比低密度的像素多。

密度独立的像素,写作为dp(发音为“dips”),是灵活的单位,规模在任何屏幕上均匀的尺寸。

低密度屏幕显示与密度独立高密度屏幕显示与密度独立