私は多くのClickableSpan
を持つTextView
を持っています。TextView内のClickableSpanの座標を取得する方法は?
ClickableSpan
をクリックすると、彼の位置にカスタムView
を表示するために、その画面上の座標を取得する必要があります。
問題は、どのように私がこれを行うことができるのか分かりません。 ClickableSpan
のonClick()
メソッドは、ClickableSpan
を含むView
のTextView
というパラメータを与えます。
私はTextView
の文字の位置を取得するために以下を使用しましたが、テキストの画面上でどのようにx/yの位置に変換できるかはわかりません。
@Override
public void onClick(View v){
SpannableString completeText = (SpannableString)((TextView) v).getText();
Log.v("characters position", completeText.getSpanStart(this) + "/" + completeText.getSpanEnd(this));
}
ご協力いただきありがとうございます。
EDIT:ClickableSpanの全座標とそのサイズを取得したいのですが、目的はテキストの中央下部にカスタムビューを表示することです。 onTouchメソッドは私に指の位置を与え、テキスト全体の座標を与えません。だから、この方法では、私はテキストの真中にはいません。
onTouch()をオーバーライドし、event.getX()、event.getY()を使用しますか? –
あなたの答えをありがとう!残念ながら、私はこの方法が非常に醜いと感じました!私はもっと良い解決策があることを願っています。さらに、私は別の精度を与えるのを忘れてしまった:ClickableSpanの全座標とそのサイズを取得したい、その目的は、テキストの下部中央に私のカスタムビューを表示することです。 onTouchメソッドは私に指の位置を与え、テキスト全体の座標を与えません。だから、この方法では、私はテキストの真中にはいません。他のアイデア? –