【发布时间】:2014-02-28 02:01:34
【问题描述】:
请提出一种在检测到捏合手势时缩放编辑文本所有内容的方法。想要像金山软件和 quickoffice 等典型的文本编辑器应用一样缩放。
【问题讨论】:
-
知道了,伙计,我是新来的。
标签: java android android-edittext pinchzoom android-gesture
请提出一种在检测到捏合手势时缩放编辑文本所有内容的方法。想要像金山软件和 quickoffice 等典型的文本编辑器应用一样缩放。
【问题讨论】:
标签: java android android-edittext pinchzoom android-gesture
这会很讨厌,但你可以继承EditText。
在您的子类中,覆盖 onTouch 并将其值传递给 ScaleGestureDetector。将检测到的比例存储为成员变量。
覆盖onDraw,并在调用super.onDraw之前使用您的比例值调用canvas.scale()。
这可能会对插入符号和编辑控件造成严重破坏。
【讨论】:
要添加 tad 的答案,您可能可以使用 MetricAffectingSpan 或 CharacterStyle 的子代: http://developer.android.com/reference/android/text/style/MetricAffectingSpan.html
您将不得不处理复制/粘贴(使用跨度!),这将是乏味的。
请注意,您可以从现有的类中派生出自己的 span,但我不能说当您将文本复制并粘贴到另一个应用程序中时它们会发生什么。
OTOH,如果您从一开始就决定您的文本只是纯文本并且只有一个跨度用于缩放,那么它可能不会那么乏味。
【讨论】:
我写了一个简单的库来做到这一点,当我需要应用程序中的功能时。你可以在GitHub找到它
【讨论】: