如何在android中捏缩放一个edittext?

时间:2014-02-04 07:50:15

标签: java android android-edittext pinchzoom android-gesture

请检查一种在检测到捏合手势时缩放edittext的所有内容的方法。想要像KingSoft和quickoffice这样的典型文本编辑器应用程序进行缩放。

3 个答案:

答案 0 :(得分:1)

这将是令人讨厌的,但你可以继承EditText

在您的子类中,覆盖onTouch并将其值传递给ScaleGestureDetector。将检测到的比例存储为成员变量。

覆盖onDraw,并在调用canvas.scale()之前使用您的比例值调用super.onDraw

这可能会对插入符号和编辑控件造成严重破坏。

答案 1 :(得分:1)

我写了一个简单的库来做这件事,当我需要应用程序中的功能时。您可以在GitHub

上找到它

答案 2 :(得分:0)

要添加tad的答案,您可能可以使用MetricAffectingSpan或CharacterStyle的子项: http://developer.android.com/reference/android/text/style/MetricAffectingSpan.html

你必须处理复制/粘贴(带跨度!),这将是乏味的。

请注意,您可以从现有的类派生自己的跨度,但我不能说当您复制和放置它们时会发生什么。将文本粘贴到另一个应用程序中。

OTOH,如果您从一开始就认为您的文本只是纯文本而且只有一个用于缩放的范围,则可能不那么乏味。