我正在使用Android窗口管理器在用户手机上显示覆盖图像,但未将ImageView设置在正确的位置,它始终默认为屏幕的中心。我知道该位置是正确的,因为我使用了辅助功能服务来触摸该位置,并且在手机中启用了显示功能后,它正在触摸正确的位置。那么为什么imageview不能转到这个位置呢?
我可以在其中找到要放置图像的位置,并在应用程序中找到imageview:
Point centerPoint = getCenterPointOfView(myImageView);
int xImageLocation = centerPoint.x;
int yImageLocation = centerPoint.y;
然后我用这个打开新的叠加层:
//Add the view to the window.
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
LAYOUT_FLAG,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.x = xImageLocation;
params.y = yImageLocation;
mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
if (mWindowManager != null) {
mWindowManager.addView(mFloatingView, params);
}else {
return;
}
答案 0 :(得分:1)
您需要将gravity
中的WindowManager.LayoutParams
设置为Gravity.TOP | Gravity.LEFT
。
您已经默认将其设置为Gravity.CENTER
,因此,x=0
和y=0
的{{1}}应该正好在屏幕中间。