我是否需要14种不同的布局来支持所有Android设备?

我真的感到困惑。 从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 

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

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

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

您也可以在横向模式下在右侧放置一些button,并在纵向布局的底部放置button!

你不必“使用”它们。

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

如果您有更大屏幕设备(如平板电脑)的自定义布局,现在可以停止使用-large或-xlarge资源限定符,并切换到使用-swXXdp或-wXXdp限定符。 后者是在API级别13中引入的,现在基本上所有的平板电脑都支持根据最新的平台版本charts1。

意味着对于基本上所有的情况,其中-large可以起作用, -swXXdp可以用来提供更多的粒度。

那么你应该使用哪些实际的sw或w限定符? 这是一个快速的给我一些东西的起点:

7“平板电脑:使用layout-sw600dp而不是布局较大的平板电脑。

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

10“平板电脑:使用layout-sw720dp而不是layout-xlarge。

例如:Nexus 10 = 1280×800 dp; 两个尺寸中的较小者为800.一些10“平板稍微窄一点,所以720是常用的切换点。

除此之外还有更多的东西(你真的想根据你的内容的最低要求select切换点,而不是设备的forms因素),但这是另一天的#Protip(::咳嗽:: +尼克·布彻::咳嗽: :)。

在布局中,如果您不使用AbsoluteLayout,您的应用程序将被resize以适应屏幕。

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

对于图像:

你有一些select。

简单地忽略一些分辨率,让设备select最好的图像。 在AndroidManifest上声明你想支持的最大尺寸。 或者只有一个,并调整您的应用程序的大小。

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

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

还有一件事,当你在Android上工作,意味着你应该总是用真实的设备来品味你的应用程序。 而且还testing不同大小的模拟器。