@dpark14 我基本上已经回答了您在昨天的帖子中提出的问题:是否针对各种屏幕尺寸建议修改 dp 大小而不是像素? https://stackoverflow.com/questions/36046531/is-modifying-the-dp-size-as-opposed-to-pixels-recommended-for-various-screen-siz/36050317
- 也许您应该编辑最后一个问题以包含上面的代码和图像,以便可以对其进行合并。
- 正如我在回答中所说(以及其他评论之一):
如果您想更改 imageButton 的布局宽度和高度(以 dp 为单位),这完全取决于您。在不同屏幕的每个独特的布局资源文件中设置 imageButton 或任何 UI 元素的宽度和高度当然没有任何问题。您是否有想要获得反馈的特定代码?
现在您已经包含了一些图像,我可以看到您拥有的一些内容。
你真的应该看看这个:Android Studio 可绘制文件夹 https://stackoverflow.com/questions/28784593/android-studio-drawable-folders
再次阅读 Android 文档会对您有所帮助:http://developer.android.com/guide/practices/screens_support.html http://developer.android.com/guide/practices/screens_support.html
总结几个总体思路:
你不需要一个default可绘制文件夹,但您应该具有以下内容:
- 可绘制-mdpi(中)~160dpi
- 可绘制-hdpi(高)~240dpi
- 可绘制-xhdpi(超高)~320dpi
- 可绘制-xxhdpi(超超高)~480dpi
- 可绘制-xxxhdpi(超超超高)~640dpi
正如 Android 文档在上面的链接中所说:
当您的应用程序在不同密度的屏幕上显示时保留用户界面元素的物理尺寸(从用户的角度来看),即可实现“密度独立性”。
代替:
如果由于某种原因(看起来您遇到了问题)您已经实现了密度独立性,但您的图像不太适合,那么您可以开始介入更改 w/h 和 res/布局
也来自我之前的回答:
正如您提到的:您可以根据“最小值”为各种设备创建不同的 res/dimens 目录,例如w800dp/dimens.xml,然后在该特定的 dimens.xml 中创建元素,例如value-w411/dimens.xml 的宽度和高度与测试应用程序时不太适合的图像相对应。
作为第一步,也许您应该尝试一下。是的,这需要时间,但首先尝试与您的应用程序分开的独立测试。只需添加一张图像(可能是您遇到问题的图像)。看看当您将其加载到模拟器中的不同 Nexus 设备时会发生什么。图像是否实现了“密度无关性”,即跨设备保留物理尺寸?如果确实如此,并且其 w/h 与特定设备的限制有关,正如我在之前的回答中所说的,现在在这里,专门为问题设备创建一个dimens目录(在values-...目录中),并更改该特定图像或视图的layout_width/layout_height。
有关特定设备的更多信息:https://design.google.com/devices/ https://design.google.com/devices/