好,那么假设您有一个背景图像(缩放以填充设备的整个宽度/高度),其中包含一些随机的艺术和两个矩形。现在,如果我想在每个矩形中放置一个图像,我不知道如何使用dp单元来这样做。在Android文档中:
例如,具有layout_width=“100 up”的视图在中等密度屏幕上测量100个像素宽,系统在高密度屏幕上将其缩放到150个像素宽,这样视图在屏幕上占据的物理空间大致相同。
我看到的问题是,如果我有两个分辨率相同的设备,但一个是中等密度,另一个是高密度,那么高密度图像就会缩放得太大。
这是否意味着,无论密度/分辨率如何,保证图像大小相同的唯一选择是合并转换函数?这似乎与dp存在的原因背道而驰,这使我相信我对此的理解是错误的。任何洞察力都会很棒!
发布于 2011-06-08 03:41:30
如果这两种设备的分辨率相同,但密度不同,那么屏幕大小就会不同,所以是的,图像的缩放会有所不同。这可能是您想要的,因为背景实际大小也将取决于屏幕大小。
如果出于某种原因,您希望将图像设置为特定大小,而不考虑密度和分辨率,则使用大小单位in (英寸)或mm (毫米)。
编辑:如果它们具有相同的大小和不同的密度,那么它们具有不同的分辨率,因此您不能使用px来设置正确的大小。您仍然需要考虑使用相同数量的屏幕的密度。此外,使用不同的分辨率,您可以为每个分辨率创建布局,即:res/layout-normal、res/layout-large等。
发布于 2011-06-08 04:03:04
你说得对,这是Android开发中最令人困惑的部分之一。
如果在相同分辨率下,设备A是中等密度,设备B是高密度,则设备A将比设备B实际大。
为了给出更多的数字,让我们假设mdpi bg图像是100×100像素,我们试图把一个矩形从10,10到15,15。如果我们用px来定义偏移量,下面是我们会得到的:
设备A(mdpi):bg图像为100 x 100 is,偏移量为10 is x 10 is
设备B(hdpi):bg图像为150 x 150 is,偏移量为10 is x 10 is
如果相反,偏移是在dp中,结果将是:
设备A(mdpi):bg图像为100 x 100 is,偏移量为10 is x 10 is
设备B(hdpi):bg图像为150 x 150 bg,偏移量为15 px15 bg
dp的美妙之处在于,它们与其他绘图的比例是成比例的。
更新:通过在可绘制的、可绘制的-hdpi中提供可绘制的、可绘制的-hdpi指令( 这里。 )来规避这个问题。
https://stackoverflow.com/questions/6273673
复制相似问题