0

我正在layout使用一些自定义按钮(不是 android 默认提供的按钮)在 android 中创建一个简单的按钮。图像在 2.7 到 5.1 的屏幕尺寸上显示正确。但是buttons在屏幕尺寸 5.4 和更大尺寸(尝试到屏幕尺寸 7)上出现拉伸。我制作了四个相同的图像,以不同的密度命名它们,并将它们相应地放置在文件夹中ldpi,mdpi,hdpi,xhpi。我需要知道我是否需要layouts为不同的屏幕创建不同的图像?或者 android 会自动从相应的文件夹中获取图像?一些人请指导我,因为我是 android 新手,因为我正在努力创建layouts针对 android 移动设备的目标。

4

5 回答 5

4

如果您始终如一地设计布局,则无需定义不同的layout文件夹(layout-land、、、 )。将负责(关于显示)。您唯一需要做的就是 在您的和下面 添加:layout-largelayout-smallAndroid OSimages<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它支持单视图。

有关更多信息,请查看Support Multiple Screens的 Android 开发人员文档。

于 2013-02-14T07:05:29.203 回答
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)

可以在此处找到有关这些不同布局(限定符)的更多信息。

也通过这个问题及其答案

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

编辑

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

于 2013-02-14T07:18:55.167 回答
1

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

于 2013-02-14T07:01:46.953 回答
1

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

看看 在 Android 中支持多屏

于 2013-02-14T07:06:20.820 回答
1

在 manifest.xml 中使用它

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

如何解决不同移动设备的Android屏幕尺寸?

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

于 2013-02-14T07:10:30.050 回答