0

編集可能なテキストを含む TextView があります。このテキストには、onTouch イベントを登録するための画像 (ドローアブル、Html.ImageGetter を使用) があります。そのため、ユーザーがスパン可能なテキストの一部である画像に触れたときに、それを知りたいのです。(そして、彼が触れた画像)。

それは可能ですか?もしそうなら、おそらく汚い回避策はありませんか?

敬具、ヤン・オリバー・オエレリッヒ

4

1 に答える 1

3

ArrowKeyMovementMethodソースコードからコピーして、次のコードスニペットを使用してみてください。

 private int getOffset(int x, int y, TextView widget){
  // Converts the absolute X,Y coordinates to the character offset for the
  // character whose position is closest to the specified
  // horizontal position.
  x -= widget.getTotalPaddingLeft();
  y -= widget.getTotalPaddingTop();

  // Clamp the position to inside of the view.
  if (x < 0) {
      x = 0;
  } else if (x >= (widget.getWidth()-widget.getTotalPaddingRight())) {
      x = widget.getWidth()-widget.getTotalPaddingRight() - 1;
  }
  if (y < 0) {
      y = 0;
  } else if (y >= (widget.getHeight()-widget.getTotalPaddingBottom())) {
      y = widget.getHeight()-widget.getTotalPaddingBottom() - 1;
  }

  x += widget.getScrollX();
  y += widget.getScrollY();

  Layout layout = widget.getLayout();
  int line = layout.getLineForVertical(y);

  int offset = layout.getOffsetForHorizontal(line, x);
  return offset;
}

お役に立てば幸いです、EdenSphere。

于 2011-03-05T13:28:42.913 に答える