【问题标题】:How to pinch zoom an edittext in android?如何在android中捏缩放edittext?
【发布时间】:2014-02-28 02:01:34
【问题描述】:

请提出一种在检测到捏合手势时缩放编辑文本所有内容的方法。想要像金山软件和 quickoffice 等典型的文本编辑器应用一样缩放。

【问题讨论】:

  • 知道了,伙计,我是新来的。

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


【解决方案1】:

这会很讨厌,但你可以继承EditText

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

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

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

【讨论】:

  • 谢谢,有没有更简单的方法?
  • 好的,你会用选择句柄做什么?它显示为 PopupWindows。并且不计算 View#setScale,因此拖放不起作用,文本选择将像没有比例一样工作。 Pins会出现在未缩放的地方
  • 正如我所说,“这可能会对插入符号和编辑控件造成严重破坏。”
【解决方案2】:

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

您将不得不处理复制/粘贴(使用跨度!),这将是乏味的。

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

OTOH,如果您从一开始就决定您的文本只是纯文本并且只有一个跨度用于缩放,那么它可能不会那么乏味。

【讨论】:

    【解决方案3】:

    我写了一个简单的库来做到这一点,当我需要应用程序中的功能时。你可以在GitHub找到它

    【讨论】:

    猜你喜欢
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 2012-12-04
    • 2013-01-06
    • 1970-01-01
    • 2013-05-29
    • 2018-07-31
    • 1970-01-01
    相关资源
    最近更新 更多