6

首先,我知道很多人都问过同样的问题,但这个问题几乎相同,但我还有几个问题。

我有一个 48px x 48px 的图像,所以如果我在 ImageView 中设置这个图像

layout_width="wrap_content"
layout_height="wrap_content"

然后图像看起来更大,但如果我使用以下固定尺寸,它会变小

layout_width="48dp"
layout_height="48dp"

我认为它现在以 48dp 正确显示(不是像素化?),但是如果我使用 wrap_content 为什么它会变大?如果通过 wrap_content 的图像大小是正确的,那么使用 dp 有什么意义(如果它使图像更小)?

4

4 回答 4

6

48dp(或48dip)代表“密度无关像素”。这意味着无论屏幕密度和尺寸如何,Android 屏幕上显示的图像的物理尺寸都应该相同。为了支持这一点,Android 会根据屏幕密度调整显示的实际像素大小。您对不同尺寸的发现会因设备而异。

dp 单位到屏幕像素的转换是:pixels = dps * (density / 160). 例如,在 240 dpi 屏幕上,1dp将等于 1.5 个物理像素。强烈建议使用 dp 单位来定义应用程序的 UI,以确保在不同屏幕上正确显示 UI。

于 2013-03-19T14:08:15.873 回答
3

这可能是因为您没有明确设置scaleType。在 XML 中设置 scaleType 如下,你应该没问题:

android:scaleType="center"
于 2013-03-19T14:04:28.530 回答
1

试试这个

<ImageView
    android:id="@+id/seprator2"
    layout_width="48dp"
    layout_height="48dp"
    android:scaleType="fitXY"
    android:src="@drawable/your_image" />

如果它仍然显示很小,那么你的图像必须包含它周围的 alpha。

于 2013-03-19T14:05:38.290 回答
0

如果图像大于视图,则可以使用以下方法对其进行缩放:

android:scaleType="center"
于 2013-03-19T14:09:45.873 回答