0

我需要在每个设备上绘制一个大小相同的正方形。我打算画一个图形按钮,我不希望它比普通手指小得多(或大得多)。

有什么方法可以确保我绘制的元素(在这种情况下为正方形)不会被调整大小?我需要它始终保持相同的尺寸(以厘米为单位)。

问候,

MK

4

3 回答 3

1

每个设备都有自己的屏幕密度。Android 允许您将视图的尺寸放在以下任一位置:

dp: Density-independent Pixels——一个基于屏幕物理密度的抽象单位。这些单位相对于 160 dpi(每英寸点数)的屏幕,因此无论屏幕密度如何,160dp 始终是一英寸。dp与像素的比例会随着屏幕密度而变化,但不一定成正比。在布局中指定视图尺寸时应使用这些单位,以便 UI 正确缩放以在不同屏幕上以相同的实际尺寸呈现。(编译器同时接受“dip”和“dp”,尽管“dp”与“sp”更一致。)

sp:与比例无关的像素 - 这类似于 dp 单位,但它也会根据用户的字体大小偏好进行缩放。建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户偏好进行调整。

pt:点 - 基于屏幕物理尺寸的 1/72 英寸。

px:像素 - 对应于屏幕上的实际像素。不推荐使用此度量单位,因为实际表示可能因设备而异;每个设备每英寸的像素数可能不同,并且屏幕上可用的总像素数可能更多或更少。

mm:毫米 - 基于屏幕的物理尺寸。

in:英寸 - 基于屏幕的物理尺寸。

例如:

<View
    android:layout_width:"10dp"
    android:layout_height:"10dp"
    android:background:"#FFFFFF"
/>

您还可以将维度保存为资源,以便在代码中使用它们。看到这个

于 2011-10-28T07:32:12.883 回答
0

这就是 DP 单元的用途。

这是一个非常有趣的讲座,它还展示了如果你使用px而不是会发生什么dp:你会在不同的设备上获得不同的 UI 大小:

http://developer.android.com/guide/practices/screens_support.html

(具体段落为Density Independent

您可能还想看看 android 属性android:minWidthandroid:minHeight

于 2011-12-28T18:31:04.743 回答
0

在每台设备上计算图形的尺寸为:高度/密度、宽度/密度和您拥有的其他尺寸

于 2011-10-28T06:57:37.333 回答