How to pinch zoom an edittext in android?

烂漫一生 提交于 2019-12-01 09:02:52

问题


Please suggest a way to zoom all the contents of the edittext when a pinch gesture is detected. Want to zoom like typical text editor apps like KingSoft and quickoffice.


回答1:


It's going to be nasty, but you can subclass EditText.

In your subclass, override onTouch and pass its values to a ScaleGestureDetector. Store the detected scale as a member variable.

Override onDraw, and call canvas.scale() with your scale value prior to calling through to super.onDraw.

This is likely to wreak havoc with the caret and edit controls.




回答2:


I wrote a simple library to do just that, back when I need the functionality in an app. You can find it on GitHub




回答3:


To add tad's answer, you probably can use children of MetricAffectingSpan or CharacterStyle: http://developer.android.com/reference/android/text/style/MetricAffectingSpan.html

You will have to handle copy/paste (with spans!), and it will be tedious.

Note that you can derive your own spans from the existing classes, but I cannot say what will happen with them when you copy & paste the text into another application.

OTOH, if you decide from the very beginning that your text is just plain text and there is only one span used for zooming, it may be not so tedious.



来源:https://stackoverflow.com/questions/21546762/how-to-pinch-zoom-an-edittext-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!