2014-02-04 3 views
2

Пожалуйста, предложите способ масштабирования всего содержимого edittext, когда обнаружен жест щепотки. Хотите масштабировать, как обычные приложения для текстового редактора, такие как KingSoft и quickoffice.Как ущипнуть масштаб edittext в андроиде?

+0

Получил это пособие, я новичок в этом месте. –

ответ

1

Это будет неприятно, но вы можете подкласс EditText.

В вашем подклассе переопределите onTouch и передайте его значениям в ScaleGestureDetector. Храните обнаруженную шкалу в качестве переменной-члена.

Переопределить onDraw и позвонить по номеру canvas.scale() со своим значением в масштабе до звонка до super.onDraw.

Это может привести к хаосу с помощью элементов управления и редактирования.

+0

Спасибо, есть более простой способ? –

+0

ОК, что вы будете делать с помощью Selections Handles? это показывает как PopupWindows. И не вычисляет View # setScale, поэтому drag & drop не работает, выбор текста будет работать, как без масштаба. Штыри появятся в местах, например, не масштабируемых. –

+1

Как я уже сказал, «Это может привести к хаосу с помощью элементов управления и редактирования». – tad

0

Чтобы добавить ответ TAD, вы, вероятно, можете использовать ребенок MetricAffectingSpan или CharacterStyle: http://developer.android.com/reference/android/text/style/MetricAffectingSpan.html

Вам придется обрабатывать копировать/вставить, и это будет утомительно (с пролетами!).

Обратите внимание, что вы можете получить свои собственные промежутки из существующих классов, но я не могу сказать, что произойдет с ними при копировании & вставьте текст в другое приложение.

OTOH, если вы решите с самого начала, что ваш текст является простым текстом, и для масштабирования используется только один диапазон, это может быть не очень утомительно.

1

Я написал простую библиотеку, чтобы сделать это, назад, когда мне нужна функциональность в приложении. Вы можете найти его на GitHub

+0

Очень полезно, спасибо –

+0

Здравствуйте, у меня есть небольшая проблема при реализации вашей библиотеки. Пожалуйста, помогите мне: http://stackoverflow.com/questions/24603282/custom-pinch-to-zoom-edittext-cant-be-edited –

Смежные вопросы