6

Android用のライブ壁紙を書いています。基本的なコードが機能していることをテストするために、画面の左上隅に四角形を描きました。

canvas.drawRect(0f,0f,50f,50f,paint);

長方形の半分は、ホーム画面上部のバーの下にありました。代替テキスト

以下を使用してピクセルオフセットを考慮に入れようとしました:

public void onOffsetsChanged(float xOffset, float yOffset,
            float xOffsetStep, float yOffsetStep, int xPixelOffset,
            int yPixelOffset)

...

  canvas.drawRect(0f+xPixelOffset,0f+yPixelOffset,50f+xPixelOffset,50f+yPixelOffset
  ,paint);

ただし、四角形はバーの下にまだ描画されています。バーの下に描画できるように、バーが終了する場所を見つけるにはどうすればよいですか?

乾杯、

ピート

4

2 に答える 2

9

このSOの回答は、ステータスバーの高さを取得する方法を提供しているようです。ステータスバーの高さ 私は以下のコードをコピーしました-元々はJorgesysによって回答されました。

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;

   Log.i("*** Jorgesys :: ", "StatusBar Height= " + StatusBarHeight + " , TitleBar Height = " + TitleBarHeight); 

それが役に立てば幸い。

于 2010-08-23T00:51:01.873 に答える
3

オフセットが設定されているかどうかを確認しましたか (オフセット変数がゼロであると推測します)。バーの下にも描画します。これは、バーをブレンドできるホーム画面アプリがいくつかあり、空白の領域ができるからです。

また、使用するオフセットは、他の画面にスライドする場合にのみ使用されると思います...

于 2010-08-18T15:48:42.627 に答える