支持不同的屏幕尺寸

时间:2012-06-28 21:36:21

标签: android android-layout android-emulator google-play android-screen-support

我想制作支持所有Android设备(平板电脑和手机)的游戏。我可以通过编码获得屏幕尺寸。 我是否将小型,中型和大型3 0r 4布局? 哪种尺寸适合小型,中型,大型和超大型? 是否有其他方法可以为所有设备设置布局?

2 个答案:

答案 0 :(得分:0)

以下是您需要的Android文档:

http://developer.android.com/guide/topics/resources/providing-resources.html

您可以使用屏幕大小,屏幕像素密度或其他内容来确定如何分隔布局。

您可以指定不同的布局(您应该尝试)。不同的尺寸可以使用相同的布局。设备最终使用的布局取决于一组规则。

因此,例如,如果您想使用屏幕大小,您可能希望在res文件夹下创建名为layout-small,layout-medium,layout-large,layout-xlarge的文件夹。这是因为layout是布局资源的默认文件夹,然后添加 - 。在这种情况下,小,中,大或xlarge。

编辑:上面的Alex链接可能就是您要找的内容。我的链接更多是关于如何做到这一点,但亚历克斯的链接更多的是关于如何做到这一点。我不确定你究竟在问什么。

答案 1 :(得分:0)

(1)支持所有布局尺寸的一种方法是将合适尺寸的图像放入drawable-hdpi,drawable-mdpi,drawable-ldpi和drawable-xhdpi。 Android运行时系统将自动选择特定屏幕尺寸的设备的图像。在这种方法中,您不必为每种尺寸制作不同的布局文件。

(2)实现同样的第二种方法是动态检测设备的大小(密度),然后相应地设置布局,可以这样做:

    DisplayMetrics displayMetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
    switch(displayMetrics.densityDpi){ 
        case DisplayMetrics.DENSITY_LOW: 
            // your layout for small-size devices.
            break; 
        case DisplayMetrics.DENSITY_MEDIUM: 
            // your layout for medium-size devices.
            break; 
        case DisplayMetrics.DENSITY_HIGH: 
            // your layout for big-size devices.
            break; 
    }  

在这种方法中,您可能需要分别为每个尺寸制作不同的布局文件。