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 回答