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.
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.
I wrote a simple library to do just that, back when I need the functionality in an app. You can find it on GitHub
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.