在 Android 的多窗口(自由形式模式)中,你可以像使用桌面电脑那样,同时打开多个应用程序并自由调整它们的大小和位置。在 Android 7.0(Nougat)及更高版本中,你可以利用 Android 的拆分屏幕功能来实现此目的。
要实现在多窗口模式下调整窗口大小时获取事件的监听,可以使用 View.OnTouchListener
监听器,并通过事件 MotionEvent.ACTION_MOVE
标识在移动窗口大小期间触发事件。以下是示例代码:
// 获取窗口视图
View windowView = getWindow().getDecorView();
// 为窗口视图设置触摸监听器
windowView.setOnTouchListener(new View.OnTouchListener() {
float initialTouchX, initialTouchY;
int initialWidth, initialHeight;
@Override
public boolean onTouch(View view, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
initialTouchX = event.getRawX();
initialTouchY = event.getRawY();
initialWidth = view.getWidth();
initialHeight = view.getHeight();
return true;
case MotionEvent.ACTION_MOVE:
float dx = event.getRawX() - initialTouchX;
float dy = event.getRawY() - initialTouchY;
int width = (int) (initialWidth + dx);
int height = (int) (initialHeight + dy);
view.setLayoutParams(new ViewGroup.LayoutParams(
width,
height
));
return true;
}
return false;
}
});
此代码段将提供一个可扩展视图窗口,通过编写此窗口视图窗口即可在Android多窗口下实现调整大小操作。