Android Q, 分辨率改变后触摸屏不缩放

Android Q, Touch screen does not scale after resolution changed

我正在尝试通过此命令将分辨率从 720x1280 更改为 1080X1920。

wm 尺寸 1080X1920

然而,分辨率改变了,看起来很好,但触摸屏没有。 触摸区域保持720x1280,桌面部分区域触摸无响应

有谁知道 AOSP 中的规则从 Android O 更改为 Android Q? 我试图找出 WindowManager.java 中的问题,但仍然没有找到根本原因。 任何信息将不胜感激。

谢谢,

在InputReader.cpp中描述的是PointInsideSurface处的输入事件的目标表面触摸范围。 分辨率缩放后报错输入事件坐标

将规则改回旧版本,问题已解决。

bool TouchInputMapper::isPointInsideSurface(int32_t x, int32_t y) {
const float scaledX = x * mXScale;
const float scaledY = y * mYScale;
return x >= mRawPointerAxes.x.minValue && x <= mRawPointerAxes.x.maxValue
        && scaledX >= mPhysicalLeft && scaledX <= mPhysicalLeft + mPhysicalWidth
        && y >= mRawPointerAxes.y.minValue && y <= mRawPointerAxes.y.maxValue
        && scaledY >= mPhysicalTop && scaledY <= mPhysicalTop + mPhysicalHeight;

更改为:

return x >= mRawPointerAxes.x.minValue && x <= mRawPointerAxes.x.maxValue && y >= mRawPointerAxes.y.minValue && y <= mRawPointerAxes.y.maxValue;