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;
我正在尝试通过此命令将分辨率从 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;