我试图在我的项目中支持所有类型的屏幕。 我在文件夹 drawables(ldpi,mdpi,Hdpi,xhdpi,xxhdpi),, 还有布局文件夹(layout-small、layout、layout-large、layout-xlarge、layout-xxlarge)。 事情是这样的: 当我在模拟器上打开应用程序时,在正常屏幕 (mdpi) 上,一切正常, 但是当我选择其他模拟器,比如 Hdpi/large 时,android 系统没有选择正确的图形。(例如,我打开一个 Hdpi 模拟器,系统选择了普通图形(mdpi)。
我需要做什么?我需要写一些代码来强制系统选择正确的图形吗?真的需要帮助!
最佳答案
您应该更改每个 View 类型之间的 dpi 值,以便它们在每个 View 中看起来都合适。在网页上Supporting Multiple Screens , 有一个图表显示不同屏幕的最小屏幕尺寸。您将不得不进行一些代数运算来比较每个值,以便将图像的 dpi 从一种尺寸转换为另一种尺寸。然而,另一种解决方案是使用“match_parent”和“wrap_content”而不是使用定义的大小,因为它简化了过程。相同的过程适用于 View 中文本的 sp。
我指的图表是这样的:
超大屏幕至少为 960dp x 720dp
大屏幕至少为 640dp x 480dp
普通屏幕至少为 470dp x 320dp
小屏幕至少为 426dp x 320dp
编辑:我还忘了提到,如果您在 LinearLayout 中使用多个 View ,则可以使用名为 android:layout_weight 的 android 属性来使用比例来划分屏幕。
编辑:那么问题可能是您没有正确缩放图像。也许您应该尝试将这些添加到您的 ImageViews 中:
android:adjustViewBounds="true"
android:scaleType="fitXY"
关于java - 如何强制android为支持的屏幕尺寸选择正确的布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21504331/