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

원형의 그림 좌표 문제

0 추천
제가 동그라미 모양의 그림을 이미지뷰에 백그라운드로 넣어서 터치시 좌표가 뜨게 했는데요

ㅇ주변에 네모나게도 터치가 되더라구요

그림 자체는 동그라미 뿐인데 네모가 터치되는걸로 봐서는 레이아웃문제 인거 같은데

원형의 레이아웃은 못만드나요 ?

그림 자체만 클릭되고 주변의 네모모서리는 터치안되게 할순없나요 ?
도미노르 (1,390 포인트) 님이 2015년 2월 3일 질문

2개의 답변

+2 추천
 
채택된 답변
그림자체만 하게~

는 일단 기본적으로는 불가능하구요 코드를 좀 만져줘야 합니다.

터치시 좌표가 뜨게 한다는것은 onClickListener 에서 좌표를 받아다가 뿌렸겠죠?

근데 이미지가 원 이다.. 원을 터치했을때만 그 작업을 하게 하고싶다. 라고 할때는 onClickListener 에서

좌표계산을 좀 해야합니다.

여러 방법이 있겠지만 한가지 방법으로는 (안드로이드 뿐만 아니라 MFC등 여러 UI에서 쓰임)

원의 중심점의 좌표와 반지름을 가지고 있습니다. (x1, y1) 이라고 하죠. 반지름은 a 라고 하구요. 그리고 터치한곳의

좌표를 (x2,y2) 라고 합시다.

 

피타고라스의 정리 배우셨죠? 피타고라스의 정리를 활용해서 현재 원의 중심과 터치한곳의 거리를 구합니다.

그 거리가 원의 반지름보다 작으면 하려는 작업을 코딩하시고, 그게 아니라면 작업을 안하면 됩니다.

if( (x1-x2)^2 + (y1-y2)^2 < a^2) {

좌표찍는거 코딩..

}

else {

아무작업도 안함..

}

 

이런식으루요..
아시리 (8,400 포인트) 님이 2015년 2월 4일 답변
도미노르님이 2015년 2월 5일 채택됨
0 추천
안드로이드의 모든 뷰는 사각형입니다.

터치리스너에서 원 내부인지 판단하여 처리하면 됩니다.
익명사용자 님이 2015년 2월 3일 답변
제가 쫌 멍청해서 못알아듣겠어요 ㅠㅠㅠㅠ
조금만 더 자세히...죄송해요
네모모서리 부분 터치했을때 칼라 뽑아보세요, 그리고 조건문 넣어서 그 컬러 아니면 동그라미그림부분이니 터치이벤트 동작하도록 하시면 될듯.
...