У меня есть EditText Я хочу увеличить его и прокручивать с помощью setScaleX/setScaleY, и он отлично работает - текст редактируется в правильной позиции.
Но когда я пытаюсь выбрать текст - он рисует дескрипторы выделения в позиции, например, когда текст не масштабируется. Известно ошибка.
Ожидаемый результат, потому что ручки рисуются во всплывающем окне, связанном с размером представления.
Все действия на android.widget.Editor нацелены на его поле private TextView mTextView;. И если мы будем настраивать собственный редактор отражением, я не знаю, что делать с частными методами, которые не являются допустимыми.
Также отображаются образы выделения в окне всплывающих окон android.widget.Editor.HandleView#HandleView, рассчитанные в макете, и мне нужно только DynamicLayout, но это не имеет никакого значения для наших целей.
Метод android.text.Layout#getPrimaryHorizontal(int, boolean) является общедоступным, и его значение можно умножить на масштаб, но для этого нам нужно расширить и переопределить частный метод android.widget.TextView#makeSingleLayout, но это проблема.
Также мы могли бы реализовать наш собственный макет со всеми необходимыми методами переопределения, но все методы, которые мы можем переопределить, отмечены аннотацией @hide и нет полей, к которым можно получить доступ с отражением.
Следующий снимок экрана для масштабирования на 2x

PS: контекст задачи - это редактор с текстом редактирования с фиксированным увеличением. Ретрансляция текста с вычислением размера не является решением. Потому что мне нужен Portable Document для каждого размера экрана.