Как ущипнуть зум редактировать текст в Android?
Пожалуйста, предложите способ увеличить все содержимое текста редактирования при обнаружении жеста. Хотите масштабировать, как типичные приложения текстового редактора, такие как KingSoft и quickoffice.
3 ответа
Это будет неприятно, но вы можете подкласс EditText
,
В вашем подклассе переопределите onTouch
и передать его значения ScaleGestureDetector
, Сохраните обнаруженный масштаб как переменную-член.
Override onDraw
и позвоните canvas.scale()
с вашим значением масштаба до вызова super.onDraw
,
Это может нанести ущерб элементам управления кареткой и редактированием.
Я написал простую библиотеку, чтобы сделать это, когда мне нужно было функциональность в приложении. Вы можете найти его на GitHub
Чтобы добавить небольшой ответ, вы, вероятно, можете использовать дочерние элементы MetricAffectingSpan или CharacterStyle: http://developer.android.com/reference/android/text/style/MetricAffectingSpan.html
Вам придется обрабатывать копирование / вставку (с интервалами!), И это будет утомительно.
Обратите внимание, что вы можете получить свои собственные диапазоны из существующих классов, но я не могу сказать, что будет с ними, когда вы скопируете и вставите текст в другое приложение.
OTOH, если вы решаете с самого начала, что ваш текст - просто текст, и для увеличения используется только один диапазон, это может быть не так утомительно.