Java 如何强制android为支持的屏幕大小选择正确的布局?

Java 如何强制android为支持的屏幕大小选择正确的布局?,java,android,android-layout,hdpi,mdpi,Java,Android,Android Layout,Hdpi,Mdpi,我正在努力支持我的项目中的各种屏幕。 我在文件夹drawables(ldpi、mdpi、Hdpi、xhdpi、xxhdpi)中添加了相应的图形,, 以及布局文件夹(小布局、布局、大布局、大布局、大布局、大布局)。 事情是这样的: 当我在模拟器上打开应用程序时,在普通屏幕(mdpi)上,。一切都是正确的, 但是,当我选择其他仿真器(如Hdpi/large)时,android系统没有选择正确的图形。(例如,我打开一个Hdpi仿真器,系统选择的是普通图形(mdpi) 我需要做什么?我需要写一些代码来强

我正在努力支持我的项目中的各种屏幕。 我在文件夹drawables(ldpi、mdpi、Hdpi、xhdpi、xxhdpi)中添加了相应的图形,, 以及布局文件夹(小布局、布局、大布局、大布局、大布局、大布局)。 事情是这样的: 当我在模拟器上打开应用程序时,在普通屏幕(mdpi)上,。一切都是正确的, 但是,当我选择其他仿真器(如Hdpi/large)时,android系统没有选择正确的图形。(例如,我打开一个Hdpi仿真器,系统选择的是普通图形(mdpi)


我需要做什么?我需要写一些代码来强制系统选择正确的图形吗?真的需要帮助!

您应该在每个视图类型之间更改dpi值,以便它们在每个视图中看起来合适。在网页上,有一个图表显示不同屏幕的最小屏幕大小。您必须o使用一些代数来比较每个值,以便您可以将图像的dpi从一种大小转换为另一种大小。但是,另一种解决方案是使用“匹配父项”和“换行内容”,而不是使用定义的大小,因为这简化了过程。相同的过程适用于视图中文本的sp

我所指的图表如下所示:

  • xlarge屏幕至少为960dp x 720dp

  • 大屏幕至少为640dp x 480dp

  • 正常屏幕至少为470dp x 320dp

  • 小屏幕至少为426dp x 320dp

编辑:我还忘了提到,如果在线性布局中使用多个视图,则可以使用名为android:layout\u weight的android属性来使用比率分割屏幕


编辑:那么问题可能是您没有正确缩放图像。也许您应该尝试将这些添加到您的ImageView中:

android:adjustViewBounds="true"
android:scaleType="fitXY"

Android选择了正确的布局和DPI绘图,错误的是你的图形:)相信我。@MartínMarconcini我的图形怎么可能是错误的?如果我的目标是hdpi屏幕(至少是400px x 854px),我会将背景设置为相同的尺寸(400px 854px),我会将背景放在hdpi文件夹中,然后设计布局large/main.xml我已经阅读了这两个链接,。。它应该选择正确的图形/布局我这样做了我的布局图形(背景):*ldpi 240 x 320*mdpi 320 x 480*hdpi 480 x 800*xhdpi 720 x 1280*xxhdpi 1080 x 1920也许你应该尝试将ImageView的缩放类型设置为fitXY,并将adjustViewBounds设置为true。这是什么?,我怎样才能尝试呢?它将在您正在修改的.xml文件中。具体来说,它是从ImageView继承的一个选项。在xml中,您必须将:android:adjustViewBounds=“true”android:scaleType=“fitXY”添加到您的ImageView中。嗯,我不知道这是否可行,但是,android系统没有正确选择的图形显示为: