多屏幕尺寸支持Android?

时间:2013-02-14 07:00:14

标签: android

我在android中创建了一个简单的layout,带有一些自定义按钮(默认情况下不是android提供的)。图像在屏幕尺寸2.7到5.1上显示正确。但是buttons在屏幕尺寸5.4和更大的屏幕上显示拉伸(尝试直到屏幕尺寸为7)。我已经制作了四个相同的图像,它们的密度相同,并且相应地放在文件夹ldpi,mdpi,hdpi,xhpi中。我需要知道我是否需要为不同的屏幕创建不同的layouts?或者android从相应的文件夹中自动获取图像?有些身体请指导我,因为我是Android的新手,因为我正在努力创建{{1}瞄准Android移动设备。

5 个答案:

答案 0 :(得分:4)

如果您设计的布局一致,则无需定义不同的layout文件夹(layout-landlayout-largelayout-small)。 Android OS将处理此问题(关于images显示)。您唯一需要做的就是在<support-screens>中添加manifest,以下是<support-screens>

 <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:compatibleWidthLimitDp="integer"
              android:largestWidthLimitDp="integer"/>

创建一致布局的提示:

  1. 不要对任何layout参数进行硬编码,例如widthheight等。
  2. 请勿使用“px”。使用“sp”表示文字大小,使用“dp”表示layout-widthlayout-height等。
  3. 使用RelativeLayoutLinearLayout,不要使用AbsoluteLayout,因为它已被弃用。
  4. ScrollView所需的任何地方使用layouts,因为它支持单一视图。
  5. 有关更多信息,请查看Support Multiple Screens

    的Android开发人员文档

答案 1 :(得分:3)

您应该为不同的屏幕尺寸采用不同的布局xml,并将它们放入res文件夹。

对于因Android版本而接近不同的密度,可以像这样进行

res/layout/mylayout.xml       # Default layouts
res/layout-v4/mylayout.xml    # Android 1.6 layouts
res/layout-v11/mylayout.xml   # Android 3.0 layouts

虽然对于不同的屏幕尺寸,您需要一些这样的布局:

res/layout/main_activity.xml           # For handsets (smaller than 600dp available width)
res/layout-sw600dp/main_activity.xml   # For 7” tablets (600dp wide and bigger)
res/layout-sw720dp/main_activity.xml   # For 10” tablets (720dp wide and bigger)

可以找到有关这些不同布局(限定符)的更多信息here.

完成此question and its answers too

注意:处理不同屏幕尺寸时,请始终使用相对布局;这是一个加号。

修改

要了解有关资源限定符的更多信息,这些链接很好。

答案 2 :(得分:1)

以下链接将帮助您了解在Android中支持多个屏幕:     http://developer.android.com/guide/practices/screens_support.html

答案 3 :(得分:1)

如果你在所有密度文件夹中有不同的图片,android会自动从相应的文件夹中取出。确保您在密度文件夹中使用九个补丁图像。

看一看 Supporting Multiple Screens in Android

答案 4 :(得分:1)

在manifest.xml中使用它

<supports-screens 
   android:resizeable="true" 
   android:smallScreens="true" 
   android:normalScreens="true" 
   android:largeScreens="true" 
   android:anyDensity="true"/>

How to solve Android screen size for different mobile devices?

http://developer.android.com/guide/practices/screens_support.html