Код: Выделить всё
Вот реализация:
Код: Выделить всё
private WindowManager.LayoutParams getLayoutParams()
{
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
getLayoutFlag(),
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
//Specify the view position
params.gravity = Gravity.TOP | Gravity.START; //Initially view will be added to top-left corner
params.x = 0;
params.y = 100;
return params;
}
private int getLayoutFlag()
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
return WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
} else {
return WindowManager.LayoutParams.TYPE_PHONE;
}
}
public void create()
{
mOverlayView = LayoutInflater.from(context).inflate(R.layout.invisible_view_layout, null);
WindowManager.LayoutParams params = getLayoutParams();
mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
mWindowManager.addView(mOverlayView, params);
Display display = mWindowManager.getDefaultDisplay();
final Point size = new Point();
display.getSize(size);
}
Я действительно не понимаю, почему рисуется только половина ширины, поскольку и ширина, и высота установлено значение «wrap_content».
Подробнее здесь: https://stackoverflow.com/questions/784 ... half-width