Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使Android和Engine游戏向后兼容低端设备(低分辨率)_Android_Andengine - Fatal编程技术网

如何使Android和Engine游戏向后兼容低端设备(低分辨率)

如何使Android和Engine游戏向后兼容低端设备(低分辨率),android,andengine,Android,Andengine,我正在使用Android和Engine开发游戏。 我使用相机宽度720和相机高度480,但对于lowend设备(如360 x 480),我使用的所有图像都是压缩的。 代码是 有解决方案吗?在onCreateEngineOptions()中,您应该指定RatioResolutionPolicy。这会将您的活动扩展到所需的大小。您可以通过以下方法获取当前屏幕大小: private DisplayMetrics getScreenResolutionRatio() { DisplayMetri

我正在使用Android和Engine开发游戏。 我使用相机宽度720和相机高度480,但对于lowend设备(如360 x 480),我使用的所有图像都是压缩的。 代码是

有解决方案吗?

在onCreateEngineOptions()中,您应该指定RatioResolutionPolicy。这会将您的活动扩展到所需的大小。您可以通过以下方法获取当前屏幕大小:

private DisplayMetrics getScreenResolutionRatio() {
    DisplayMetrics dm = new DisplayMetrics();
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    return dm;
}
然后指定您的比率解决方案策略:

public EngineOptions onCreateEngineOptions() {
    RatioResolutionPolicy policy = new RatioResolutionPolicy(getScreenResolutionRatio().width, getScreenResolutionRatio().height);
    return new EngineOptions(true, ScreenOrientation.PORTRAIT_SENSOR, policy, this.mCamera);
}

请更清楚地说明问题。你到底想实现什么?我发现你在代码格式方面有一些问题。诀窍是“反向”操作,首先将代码作为文本粘贴到问题上,确保缩进是正确的,然后突出显示整个代码并单击“代码示例”按钮。但是我遇到了低分辨率屏幕大小设备的问题public Engine onLoadEngine(){this.mCamera=新摄像头(0,0,摄像头宽度,摄像头高度);返回新引擎(新引擎选项(true,ScreenOrientation.scape,new FillResolutionPolicy(),this.mCamera)。setNeedsSound(true));}问题是新的FillResolutionPolicy()仍在尝试将场景重新缩放到设备的大小。RatioResolutionPolicy将为您提供一个不使用所有屏幕的机会,但带有参数的屏幕我希望对所有屏幕分辨率进行常规构建。这就是为什么要使用我描述的方法getScreenResolutionRatio(),并获取屏幕度量。然后设置使用度量计算所需分辨率的数学逻辑。然后,无论屏幕大小如何,您都将拥有具有所需纵横比的场景。
public EngineOptions onCreateEngineOptions() {
    RatioResolutionPolicy policy = new RatioResolutionPolicy(getScreenResolutionRatio().width, getScreenResolutionRatio().height);
    return new EngineOptions(true, ScreenOrientation.PORTRAIT_SENSOR, policy, this.mCamera);
}