2

現在、0,0 で描画すると、ステータス バーが描画を覆います。サーフェスの位置を調整する方法はありますか、またはステータス バーを考慮して描画オフセットを作成する必要がありますか? y=25 から始まるすべてを効果的に描画しますか?

4

4 に答える 4

2

この問題が発生したとき、Surface の上にダミーの View がありました (私は FrameLayout を使用してそれを行いました)。これは ContentView のように大きくなります。だから私が必要としたのは View.getLocationOnScreen(int[])、どこから描き始めるべきかを知るために電話することだけでした.

于 2012-08-21T01:11:45.010 に答える
2

サーフェス ビューがステータス バーと重なる理由はわかりませんが (Android のバグのように聞こえます)、おそらく最も簡単なglViewport方法は、描画に使用するサーフェス ビューの領域を定義するために使用することです。

ステータス バーの高さがわかる場合は、それを glViewport 呼び出しの高さから差し引くだけで、すべての呼び出しがビューポート範囲のすぐ内側にマップされます。

于 2012-08-20T23:34:44.497 に答える
1

アクティビティに使用するテーマ/スタイルを Android に伝える必要がある場合があります。

glSurfaceView を作成するアクティビティの AndroidManifest.xml に以下を含めます。

android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"

または、ステータスバーを保持したい場合:

android:theme="@android:style/Theme.Black.NoTitleBar"

テーマとスタイルの詳細は次のとおりです: http://developer.android.com/guide/topics/ui/themes.html

編集: この方法では、glSurfaceView を作成するときに、Android は要求されたレイアウトを考慮に入れる必要があるため、オフセットは必要ありません...

于 2012-08-22T15:29:31.640 に答える