ImageView,为什么大小不一?

xme*_*men 6 java android

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

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

layout_width="wrap_content"
layout_height="wrap_content"
Run Code Online (Sandbox Code Playgroud)

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

layout_width="48dp"
layout_height="48dp"
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*arl 6

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

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


Chi*_*tel 1

尝试这个

<ImageView
    android:id="@+id/seprator2"
    layout_width="48dp"
    layout_height="48dp"
    android:scaleType="fitXY"
    android:src="@drawable/your_image" />
Run Code Online (Sandbox Code Playgroud)

如果它仍然显示很小,那么您的图像周围一定包含 Alpha。