我创建了一个service
,它会将图像叠加在整个屏幕的顶部。
此部分是将图像叠加在整个屏幕顶部的代码:
@Override public void onCreate() {
super.onCreate();
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
img = new ImageView(this);
img.setImageResource(R.drawable.image); // Image is .png format
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.CENTER | Gravity.CENTER;
params.x = 0;
params.y = 0;
windowManager.addView(img, params);
}
然而,图像覆盖的任何空间都是不可触及的。我希望图像只是重叠,而不会影响屏幕上的任何其他组件,类似于这样做:
如何使图像下方的区域可触摸(触摸)?
修改
似乎图像的透明空间填充正方形,并覆盖屏幕(FYI)。
因此,我的最终目标是使图像触摸。
我已尝试过几个SO用户推荐的popupWindow
课程,但其目的并不能满足我的需求,也不起作用。
答案 0 :(得分:1)
我发现WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY
解决了这个问题。
答案 1 :(得分:0)
尝试
img.setClickable(false);
http://developer.android.com/reference/android/view/View.html#setClickable(boolean)
答案 2 :(得分:0)
尝试将param标志设置为:
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
我之前尝试过这个。最后两个将有助于将触摸事件发送到它背后的视图。