android中的屏幕兼容性问题

时间:2013-03-12 06:43:32

标签: android layout tabs imagebutton

我的app有问题。我使用图片按钮创建了标签栏,当我在480 * 800 hdpi设备中运行应用程序时,当我在240 * 320设备中运行图像中的图像时,标签栏图像显示完美按钮未正确显示。我已创建可绘制文件夹并添加了图像

drawable
drawable-hdpi
drawable-ldpi
drawable-mdpi
drawable-xhdpi

3 个答案:

答案 0 :(得分:3)

尝试以下布局方案。我在http://jamil.fluidsoul.net/2011/03/06/creating-android-applications-for-multiple-screen-sizes找到了。

Low density Small screens QVGA 240x320 (120dpi):

layout-small-ldpi (240x320)  
layout-small-land-ldpi (320x240)

Low density Normal screens WVGA400 240x400 (x432) (120dpi):

layout-ldpi  (240 x 400 )
layout-land-ldpi  (400 x 240 )

Medium density Normal screens HVGA 320x480 (160dpi):

layout-mdpi (320 x 480 )
layout-land-mdpi (480 x 320 )

Medium density Large screens HVGA 320x480 (160dpi):

layout-large-mdpi (320 x 480 )
layout-large-land-mdpi (480 x 320)

Galaxy Tab ( 240 dpi ):

layout-large  (600 x 1024) 
layout-large-land  (1024 x 600)

High density Normal screens WVGA800 480x800 (x854) (240 dpi):

layout-hdpi (480 x 800)
layout-land-hdpi (800 x 480)

Xoom (medium density large but 1280x800 res) (160 dpi):

layout-xlarge (800 x 1280)
layout-xlarge-land (1280 x 800)

如果图形布局中的结果显示最佳匹配,则原始设备中的输出也会相同。

答案 1 :(得分:1)

有关详细信息,请参阅Android Developer Guide

总而言之,您必须在AndroidManifest.xml中声明每个支持的屏幕尺寸。例如,您必须包含以下内容:

<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"/>

要支持240 * 320,您必须执行以下操作:

1:在AndroidManifest.xml中,包括

<supports-screens android:smallScreens="true" />

2:创建不同的layout-small文件夹:

res/layout/layout-small/

3:创建drawable-ldpi文件夹(您已经做过):

res/drawable-ldpi/

答案 2 :(得分:0)