如何强制android为支持的屏幕尺寸选择合适的布局?

时间:2014-02-01 22:12:16

标签: java android android-layout hdpi mdpi

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

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

1 个答案:

答案 0 :(得分:0)

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

我所指的图表是这样的图表:

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

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

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

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

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


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

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