包裹内容 vs 设置 dp

3

这个 DP 度量方法很令人困惑,我正在尝试学习何时应该在使用 ImageView 时使用 wrap_content 和何时设置高度。

我的当前问题是,我在三个图像上使用了 wrap_content(是的,我为每个屏幕大小都有不同的资源:mdpi、hdpi、xhdpi),但在一些设备上(两个 hdpi 设备),由于它们具有不同的宽度像素大小(一个为480像素,另一个为590像素),在480像素设备上,其中一个图像看起来较小,因为它们的大小是由 wrap_content 计算的。

我可以让设计师重新制作所有 hdpi 尺寸的图像,但我想知道何时使用 wrap_content,何时自己设置 DP 大小。


1
我不知道如何回答你的问题,实际上我的情况也是一样的。为了避免不同尺寸的问题,我所做的就是像你说的那样使用不同的资源,并将宽度和高度设置为mdpi资源的相同值,这样在不同的屏幕尺寸下就能正常工作。 - Victor Laerte
那么,最好的方法是基于mdpi设计,然后将每个图像大小乘以1.75和2.00?如果是这样,那应该是...在Photoshop上320 x 480画布大小? - Christopher Francisco
1个回答

2

DP是一种度量单位,可以将不同屏幕像素密度标准化,这意味着像50dp这样的值,在您运行应用程序的任何设备上都具有相同的物理大小。

至于实际设计布局,您几乎总是应该使用wrap_contentmatch_parent而不是为宽度和高度设置硬数字。通常只有在使用LinearLayout的子代进行比例尺寸设置时,或者在使用RelativeLayout的各种布局锚定点的子代时才会出现异常。


当从URL获取图像时,我需要自己在DP中设置宽度和高度,对吗? - Christopher Francisco
你可以这样做;我个人不太喜欢这样的解决方案,但这取决于你的需求。如果你关心的是图片的缩放,你可以在ImageView上设置一个缩放类型,或者可能扩展ImageView并尝试自己处理这些问题。 - Karakuri
我的常见问题不是比例类型,而是图像的实际比例,这样它在mdpi上不会覆盖整个屏幕,在xhdpi上又不会太小;而且由于它们是从URL获取的,我不能为每个屏幕密度设置1个图像。 - Christopher Francisco

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接