How to pinch zoom an edittext in android?

后端 未结 3 1802
失恋的感觉
失恋的感觉 2021-01-15 11:31

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.

相关标签:
3条回答
  • 2021-01-15 11:47

    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.

    0 讨论(0)
  • 2021-01-15 11:48

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

    0 讨论(0)
  • 2021-01-15 12:04

    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.

    0 讨论(0)
提交回复
热议问题