마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

edit text 커서의 절대 좌표를 알 수 있을까요?

0 추천

edit text에 사용자가 글을 입력할 때마다 커서 위치를 따라다니는 프로그램을 만들려고 합니다.

이런 식으로요 ㅎㅎ

edit text 커서의 절대 좌표를 알고 싶었는데 그건 아무리 찾아도 안 나와서 일단은 

move = Math.min(edit.length(), 2000);
Center.x = (long)(lRadius+(move*15));

대충 이런식으로 해놨습니다.

(Center.x와 lRadius는 각각 별 그림의 중심 좌표와 크기값입니다.

15는 걍 제가 얼추 때려 넣은거;;; 정확한 값이 뭔지 모르겠군요;;;)

어설프게나마 완전히 맞진 않지만 얼추 비슷하게 가리키고는 있는데

문제는 edit text가 다음줄로 넘어갔을 때네요ㅜ

 

android hello asdfgghh i am

fine_

뭐 이런식으로 edit text 내에서 개행이 되었을 경우 별이 fine 옆으로 따라갔으면 좋겠는데

그냥 계속 am 옆으로만 떠갑니다...

입력할때마다 계속 옆으로만 가요ㅜ 아예 안 보일때까지...

 

혹시 edit text 줄 수 구하는 방법이랑 n번째 줄의 커서 위치를(글자 length 말구요) 구하는 방법이 있을까요?

제일 좋은 건 커서 자체의 절대 좌표를 알아오는 건데 도통 찾을 수가 없네요;;

도와주시면 감사하겠습니다. 

소다나 (600 포인트) 님이 2013년 6월 19일 질문

1개의 답변

0 추천

자답 :

length = mTv.getSelectionStart();
Editable edit = mTv.getText();
int pos = mTv.getSelectionStart();
Layout layout = mTv.getLayout();
int line = layout.getLineForOffset(pos);
int baseline = layout.getLineBaseline(line);
int ascent = layout.getLineAscent(line);
float x = layout.getPrimaryHorizontal(pos);
float y = baseline + ascent;

이런식으로 대충은 해결했는데(잘 움직입니다)

초기 위치가 0,0으로밖에 안잡혀서 약간의 보정이 필요했습니다.

제가 xml에서 editText를 추가한 게 아니라 코드에 바로 집어 넣어서 그런건지는 잘 모르겠습니다...

소다나 (600 포인트) 님이 2013년 6월 25일 답변
...