Frage

Ich schreibe ein Live Wallpaper für Android. Zu meinem grundlegenden Code zu testen arbeite ich ein Rechteck in der Spitze zog linke cornor des Bildschirms:

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

Die Hälfte des Rechtecks ??war unterhalb der Leiste am oberen Rand des Bildschirms. alt text

Ich habe versucht, zu berücksichtigen Pixel-Offsets nehmen mit:

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);

Aber das Rechteck ist noch unterhalb der Bar gezogen. Wie finde wo die Stabenden so dass ich darunter ziehen kann?

Cheers,

Pete

War es hilfreich?

Lösung

Diese SO Antwort scheint eine Möglichkeit zu schaffen, um die Höhe der Statusleiste kommt man hin: Höhe von statusbar Ich kopierte den Code unten -. Ursprünglich beantwortet von 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); 

Hope es hilft.

Andere Tipps

Haben Sie, wenn ein überprüft Offset gesetzt (guess Ihre Offset-Variablen Null sind)? Ich würde unter der Stange ziehen, auch, weil es einige Home-Screen-Anwendungen sind, die die Bar Ausblenden können und Sie werden als einen leeren Bereich haben.

Ich denke auch, dass die Offset Sie verwenden nur verwendet, wenn Sie auf andere Bildschirme gleiten ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top