设计布局以支持多个屏幕

时间:2015-05-04 07:03:08

标签: android android-layout

我在互联网上搜索了很多关于这个主题的内容,发现了一些有用的链接,但仍然无法设计支持所有设备大小和分辨率的UI。我已经从开发人员网站Supporting Multiple Screens和此blog了解了有关此主题的详细信息,了解了最小宽度技术。目前我已经关注this approach我在其中创建了一个布局文件夹,并为不同文件夹中的每个屏幕密度设置尺寸。目前我的res文件夹看起来像这样

res

我创建了一个单一的布局文件夹,并在默认值文件夹中为正常屏幕尺寸(即Nexus S 4.0英寸480x800 hdpi)定义了它的尺寸,然后我将该尺寸文件复制到values-sw600dp文件夹中,并调整了尺寸为平板电脑正确拿起7英寸平板电脑。但现在我正在尝试设计其他手机/设备,如Galaxy Nexus 4.7inch 720x1280 xhdpi或其他大尺寸手机,如galaxy s3,s4等,但不知道如何做到这一点。如果我将dimen文件放入值-sw320dp-xhdpi文件夹以调整Galaxy Nexus 4.7inch 720x1280,它也会改变正常(Nexus S 4.0英寸480x800 hdpi)屏幕。所以我对这些设计限定符感到困惑。任何人都可以描述一种确切的方式或标准方法/布局层次结构来支持所有屏幕尺寸

2 个答案:

答案 0 :(得分:1)

您可能会对像素和与密度无关的像素(dp或dip)感到困惑。

Galaxy Nexus 720x1280像素xhdpi(2x)表示dx值为360x640,因此最小宽度(sw)为360。 Nexus S 4.0英寸480x800 hdpi(1.5x)的最小宽度为320

所以这两个都会从值-sw320

获得值

答案 1 :(得分:0)

为不同的屏幕尺寸创建不同的布局文件夹,例如layout-large,layout-small,layout-xlarge,layout-xxlarge等。但是我不知道你在xml文件中使用了哪种布局。 总是尝试使用LinearLayout和RelativeLayout。不要在xml文件中使用像素。

在Manifest中添加支持屏幕

<supports-screens android:resizeable=["true"| "false"]
              android:smallScreens=["true" | "false"]
              android:normalScreens=["true" | "false"]
              android:largeScreens=["true" | "false"]
              android:xlargeScreens=["true" | "false"]
              android:anyDensity=["true" | "false"]
              android:requiresSmallestWidthDp="integer"
              android:compatibleWidthLimitDp="integer"
              android:largestWidthLimitDp="integer"/>