在我的应用程序中,我需要在运行的所有应用程序之上绘制位图。我创建了一个隐藏的视图,并覆盖在所有应用程序之上。使用此叠加视图,我可以在给定位置绘制位图,但我无法在导航栏上绘制位图。我使用了以下布局参数。
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_FULLSCREEN
|WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
|WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
|WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR
|WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
我需要帮助来解决这个问题。提前致谢
答案 0 :(得分:4)
我自己已经解决了这个问题,要在android底部的导航栏上绘制,我必须在定义windowManager.Layout params时在Y位置给出一个偏移量,如下所示。
w = new android.view.WindowManager.LayoutParams(-1, -1,0,-navigationBarHeight(), WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_FULLSCREEN
|WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
|WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
|WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR
|WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, Pixel.Translucent);
f.addView(v, w);
注意:这仅在导航栏为半透明时才有效