【问题标题】:Android Q, Touch screen does not scale after resolution changedAndroid Q,分辨率更改后触摸屏不缩放
【发布时间】:2020-07-10 18:47:27
【问题描述】:
我正在尝试通过此命令将分辨率从 720x1280 更改为 1080X1920。
wm 尺寸 1080X1920
但是,分辨率发生了变化并且看起来非常好,但触摸屏却没有。
触摸区域保持在 720x1280,桌面部分区域在我触摸时没有事件响应。
有谁知道 AOSP 从 Android O 到 Android Q 的规则有什么变化?
我试图找出 WindowManager.java 中的问题,但仍然没有根本原因。
任何信息将不胜感激。
谢谢,
【问题讨论】:
标签:
android
android-source
【解决方案1】:
在 isPointInsideSurface 处输入事件的目标表面触摸范围,在 InputReader.cpp 中描述。
分辨率缩放后报错输入事件坐标。
将规则改回旧版本,问题解决。
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;