我想制作支持所有Android设备(平板电脑和手机)的游戏。我可以通过编码获得屏幕尺寸。我是否已将 3 0r 4 布局设为小、中和大?小号、中号、大号和特大号分别是什么尺寸?有没有其他方法可以为所有设备设置布局?
2 回答
(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;
}
在这种方法中,您可能必须为每种尺寸分别制作不同的布局文件。
这是您需要的 Android 文档:
http://developer.android.com/guide/topics/resources/providing-resources.html
您可以使用屏幕尺寸、屏幕像素密度或其他因素来确定如何分隔布局。
您可以指定不同的布局(您应该尝试这样做)。不同的尺寸可以使用相同的布局。设备最终使用的布局取决于一组规则。
因此,例如,如果您想使用屏幕尺寸,您需要在 res 文件夹下创建名为 layout-small、layout-medium、layout-large、layout-xlarge 的文件夹。这是因为 layout 是布局资源的默认文件夹,然后你添加一个 -。在本例中,为 small、medium、large 或 xlarge。
编辑:上面亚历克斯的链接可能是您正在寻找的。我的链接更多是关于如何做到这一点,但亚历克斯的链接更多是关于如何做好。我不确定你到底在问什么。