61

我真的感到很困惑。从 developer.android.com 上的文档看来,为了让我的图像在所有当前的 Android 设备上正确缩放(纵横比也是),我需要下面的所有这些布局。这真的是每个人都在做的吗?我错过了什么,还是我应该以不同的方式解决这个问题?

Low density Small screens QVGA 240x320
------------------------------------------------
layout-small-ldpi
layout-small-land-ldpi

Low density Normal screens WVGA400 240x400 (x432)
------------------------------------------------
layout-ldpi
layout-land-ldpi

Medium density Normal screens HVGA 320x480
------------------------------------------------
layout-mdpi
layout-land-mdpi

Medium density Large screens HVGA 320x480
------------------------------------------------
layout-large-mdpi
layout-large-land-mdpi

High density Normal screens WVGA800 480x800 (x854)
------------------------------------------------
layout-hdpi
layout-land-hdpi

Xoom (medium density large but 1280x800 res)
------------------------------------------------
layout-xlarge
layout-xlarge-land
4

4 回答 4

23

您的应用将在 100% 具有经典布局的设备上运行。

您可以通过添加一些限定符来添加一些按钮或在横向模式下更改布局,但这取决于您!

例如,在 LDPI(小分辨率)设备上,您可能需要调整一些按钮或稍作更改以适应小屏幕。

您可能还想在横向模式下将一些按钮放在右侧,在纵向模式下放在布局的底部!

您不必“必须”使用它们。

于 2011-04-05T21:13:20.843 回答
8

根据 Roman Nurik 的 Android Dev Protip关于屏幕尺寸限定符的说法:

如果您有针对平板电脑等大屏幕设备的自定义布局,现在是时候停止使用-large 或 -xlarge资源限定符并改用-swXXdp 或 -wXXdp限定符了。后者是在API 级别 13中引入的,根据最新的平台版本图表 1,基本上所有平板电脑现在都支持。

意味着对于基本上所有 -large 会产生任何影响的情况, 可以使用-swXXdp来提供更多粒度。

那么你应该使用哪个实际的sw 或 w限定符?这是一个快速的just-give-me-something 起点:

7" 平板电脑:使用 layout-sw600dp 代替 layout-large。

示例:Nexus 7 = 960×600 dp;两个维度中较小的一个是 600。

10" 平板电脑:使用 layout-sw720dp 代替 layout-xlarge。

示例:Nexus 10 = 1280×800 dp;两个尺寸中较小的是 800。一些 10" 平板电脑有点窄,所以 720 是常用的切换点。

不仅如此(您真的想根据内容的最低要求选择切换点,而不是设备外形尺寸),但这是另一天的#Protip(::cough:: +Nick Butcher ::cough: :)。

于 2014-03-13T07:05:31.907 回答
2

在布局中,如果您不使用 AbsoluteLayout,您的应用程序将调整大小以适应屏幕。

但在某些情况下,对于较小的屏幕,您需要声明一个包含更少组件的新布局。

对于图像:

你有一些选择。

简单地忽略一些分辨率,让设备为其选择最佳图像。在 AndroidManifest 上声明您想要支持的尺寸。或者只有一个,让调整大小搞定您的应用程序。

于 2011-04-05T21:15:47.537 回答
0

是的。您应该为不同的屏幕分辨率定义不同的布局。

当您应该使用平板电脑类型的应用程序时。那个时候你真的感觉到了。需要不同的布局。因为平板电脑总是有不同的尺寸。

还有一件事,当你在安卓上工作时,意味着你应该总是用真实的设备来体验你的应用程序。并且还使用不同大小的模拟器进行测试。

于 2013-09-30T05:10:27.200 回答