使用dpi缩放图像与dp相比之间的差异

时间:2016-03-17 15:48:35

标签: android xml layout bitmap dpi

我有所有dpi可绘制目录(xxhdpi和xxxhdpi甚至是必要的吗?)由九个补丁位图组成,drawable目录中的drawable资源文件检索所有缩放的位图,并设置了背景带有可绘制资源文件的按钮......现在,我的问题是我还根据大小(小,正常等)创建了“缩放”布局目录,其中我尝试手动将按钮的dp更改为如下:

这是我的xhdpi位图:

enter image description here

...但是在布局大目录中的Nexus 7虚拟仿真器(7.0“,1200X1920:xhdpi)上看起来像这样:

enter image description here

...当我手动将dp大小更改为其中一个按钮的200时:

enter image description here

^^^我的目录如何看待? ...为什么按钮看起来像那样? ^^^

所有这些说,我只是不明白为什么我们需要基于密度的可绘制目录(mdpi,hdpi,xhdpi等)以及布局资源目录,当我们可以只需修改每个独特布局中关于屏幕大小(小,正常等)的图像的dp。

1 个答案:

答案 0 :(得分:0)

@ dpark14我基本上已经回答了你昨天在帖子中提到的问题:Is modifying the dp size as opposed to pixels recommended for various screen sizes?

  1. 也许您应该编辑上一个问题以包含上面的代码和图像,以便合并。
  2. 正如我在回答中所说(其中一条评论说):
  3.   

    如果您想要更改imageButton的布局宽度和高度(以dp为单位),这完全取决于您。在各种屏幕的每个独特布局资源文件中,设置imageButton或任何UI元素的宽度和高度当然没有任何问题。您是否有想要获得反馈的特定代码?

    现在您已经包含了一些图像,我可以看到您拥有的一些图像。

    你应该看看这个: Android Studio drawable folders

    再次阅读Android文档对您有所帮助: http://developer.android.com/guide/practices/screens_support.html

    总结一些一般性的想法: 您不需要默认可绘制文件夹,但您应该具有以下内容:

    • drawable-mdpi(medium)~160dpi
    • drawable-hdpi(high)~240dpi
    • drawable-xhdpi(extra-high)~320dpi
    • drawable-xxhdpi(extra-extra-high)~480dpi
    • drawable-xxxhdpi(extra-extra-extra-high)~640dpi

    正如Android文档在上面的链接中所说:

      

    当您的应用程序在不同密度的屏幕上显示时保留用户界面元素的物理大小(从用户的角度来看),可实现“密度独立性”。

    enter image description here

    而不是:

    enter image description here

    如果由于某种原因(因为看起来你遇到了问题),你已经实现了密度独立性,但是你的图像不合适,那就是当你可以开始介入w / h的变化时和res / layout

    同样来自我之前的回答:

      

    正如您所提到的:您可以根据“最小值”为各种设备创建不同的res / dimens目录,例如: w800dp / dimens.xml然后在该特定的dimens.xml中创建元素,例如width-w411 / dimens.xml的宽度和高度与您在测试应用时不合适的图像相对应。

    作为第一步,也许你应该尝试一下。是的,这需要时间,但首先尝试独立于您的应用程序的独立测试。只需添加一个图像(也许是您遇到问题的图像)。查看将其加载到仿真器中的不同Nexus设备时会发生什么。图像是否实现“密度独立性”,即保留设备的物理尺寸?如果确实如此,并且与w / h相关的特定设备的限制存在问题,正如我在之前的回答中说的那样,现在在这里,创建一个维度目录(在一个值内 - ...目录)专门针对问题设备并更改该特定图像或视图的layout_width / layout_height。

    有关特定设备的更多信息w / h:https://design.google.com/devices/