我终于找到了一种方法。如果 playn 开发人员经过这里,他们可能会告诉我这是否是最好的方法。
我重写了 GameActivity 的setContentView方法。在父级中,该方法将 GameViewGL 附加到主布局。因此,我复制了代码并对其进行了修改以添加我的尺寸和位置规范:
@Override
protected void setContentView(GameViewGL view) {
BitmapDrawable bmp = new BitmapDrawable(getResources(), "");
getWindow().setBackgroundDrawable(bmp);
LinearLayout layout = new LinearLayout(this);
layout.setBackgroundColor(0xFFFF0000);
layout.setGravity(Gravity.CENTER);
layout.addView(view);
LayoutParams params = new LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT
);
Point size = new Point();
getWindowManager().getDefaultDisplay().getSize(size);
if (size.y > size.x) {
params.width = size.y;
params.height = size.y / 2;
layout.setY((size.x - size.y / 2) / 2);
} else {
params.width = size.x;
params.height = size.x / 2;
layout.setY((size.y - size.x / 2) / 2);
}
getWindow().setContentView(layout, params);
}