Как ущипнуть зум редактировать текст в 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, если вы решаете с самого начала, что ваш текст - просто текст, и для увеличения используется только один диапазон, это может быть не так утомительно.

Другие вопросы по тегам