http://android-developers.blogspot.ca/2013/09/using-hardware-scaler-for-performance.htmlに従って、setFixedSize を使用して、非常に大きな画面サイズのタブレットでゲームを高速化しようとしています。
私が直面している問題は、現在、Surface を追加する RelativeLayout があることです。
テスト ケースとして、gl2jni NDK サンプル アプリを使用し、init メソッドで getHolder().setFixedSize(128,128) への呼び出しを GJ2JNIView.java に追加しました。これにより、128x128 の醜いバッファが適切に作成され、フルスクリーンに拡大され、期待どおりに動作しました。
次に、JL2JNIActivity の onCreate メソッドを次のように変更しました。
@Override protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
mView = new GL2JNIView(getApplication());
boolean useRelativeLayout = false;
if ( useRelativeLayout ) {
mLayout = new RelativeLayout(this);
RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
mLayout.setLayoutParams(param);
mLayout.addView(mView);
setContentView(mLayout);
} else {
setContentView(mView);
}
}
useRelativeLayout を false に設定し、setContentView が setFixed サイズを呼び出した GL2JNIView を直接使用すると、期待どおりに動作します。
useRelativeLayout を true に設定すると、mView が左上に小さな 128x128 バッファーとして表示されます。