3

我正在尝试支持我的项目中的所有类型的屏幕。我在文件夹中添加了相应的图形(ldpi,mdpi,Hdpi,xhdpi,xxhdpi),以及布局文件夹(layout-small,layout,layout-large,layout-xlarge,layout-xxlarge)。事情是这样的:当我在模拟器上打开应用程序时,在普通屏幕(mdpi)上,一切都是正确的,但是当我选择其他模拟器(如一个 Hdpi/large)时,android 系统没有选择正确的图形。 (例如,我打开一个 Hdpi 模拟器,系统正在选择普通图形(mdpi)。

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

4

1 回答 1

0

您应该更改每种视图类型之间的 dpi 值,以便它们在每个视图中看起来都合适。在Supporting Multiple Screens网页上,有一个图表显示了不同屏幕的最小屏幕尺寸。您将不得不做一些代数来比较每个值,以便您可以将图像的 dpi 从一种尺寸转换为另一种尺寸。然而,另一个解决方案是使用“match_parent”和“wrap_content”而不是使用定义的大小,因为它简化了过程。相同的过程适用于视图中文本的 sp。

我指的图表是这样的:

  • 超大屏幕至少为 960dp x 720dp

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

  • 普通屏幕至少为 470dp x 320dp

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

编辑:我还忘了提到,如果您在 LinearLayout 中使用多个视图,您可以使用名为 android:layout_weight 的 android 属性来使用比率来划分屏幕。


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

android:adjustViewBounds="true"
android:scaleType="fitXY"
于 2014-02-02T01:48:13.847 回答