アプリで Andengine GLES2 を使用しています。また、アクション バーのシャーロックを静的アタッチメントで使用しているため、次のようなエンジン オプションがあります。
DisplayMetrics metrics = this.getResources().getDisplayMetrics();
// Calculate ActionBar height
TypedValue tv = new TypedValue();
if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
{
mActionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
}
CAMERA_WIDTH = metrics.widthPixels;
CAMERA_HEIGHT = metrics.heightPixels-mActionBarHeight;
camera = new ZoomCamera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
EngineOptions options = new EngineOptions(false,
ScreenOrientation.LANDSCAPE_FIXED, new RatioResolutionPolicy(
CAMERA_WIDTH, CAMERA_HEIGHT), camera);
アクション バーが表示されるようにするには、エンジンを全画面表示せずに実行する必要があります。これは私の HP タッチパッド タブレットで完璧に動作し、ゲーム全体がアクション バーの下のスペースを埋めます。Samsung Galaxy S3 を使用している場合、上部のステータス バーが考慮されず、高さが本来よりも大きいため、幅が小さすぎます。どうにかしてサムスン Galaxy のトップ ステータス バーの高さを取得する方法が必要です。SOの複数のスレッドで見たこの方法を試しました:
Rect rectgle= new Rect();
Window window= getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
int StatusBarHeight= rectgle.top;
int contentViewTop=
window.findViewById(Window.ID_ANDROID_CONTENT).getTop();
int TitleBarHeight= contentViewTop - StatusBarHeight;
これは何もしません。そのユニークなバーのために、サムスンギャラクシーでは他のデバイスとは異なる動作をしていると思います. これの高さを得るために私ができることを誰かが知っていますか? 助けてくれてありがとう!