Android Q, сенсорный экран не масштабируется после изменения разрешения - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь изменить разрешение с 720x1280 до 1080X1920 с помощью этой команды.

wm size 1080X1920

Однако разрешение изменилось и выглядело очень хорошо, но сенсорный экран не , Область касания остается в разрешении 720x1280, часть области на рабочем столе не реагирует на события, когда я касаюсь ее.

Кто-нибудь знает, что правило изменяется в AOSP с Android O на Android Q? Я пытаюсь выяснить проблему в WindowManager. java, но не получил root причину по-прежнему. Любая информация будет высоко ценится.

Спасибо,

1 Ответ

0 голосов
/ 18 апреля 2020

Диапазон касания целевой поверхности для события ввода в 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;
...