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

뷰에서 일정영역만 터치리스너 되게하는 방법..

+1 추천

 

그림에서 처럼 특정부분을 나누어 놓고 터치리스너가 작동하게 하고싶은데

하나의 뷰를 스샷처럼 몇등분 구역으로 나누는 방법이있나요?

예림이그코드좀바바 (2,470 포인트) 님이 2015년 3월 7일 질문

2개의 답변

+1 추천
 
채택된 답변
크기가 빨간색인 투명 이미지뷰를 화면에 올려놓고 그곳에만 리스너를 달거나

빨간색의 상하좌우 좌표를 구해서

터치시 빨간색영역안에 있으면 이벤트처리해주시거나 하심 되실것으로
nicehee (73,100 포인트) 님이 2015년 3월 7일 답변
예림이그코드좀바바님이 2015년 3월 9일 채택됨
+2 추천
xml에서 레이아웃 나누실때 3부분으로 위처럼 나누세요.

예를 들어서

LinearLayout에 weight을 주어서,

<LinearLayout

     android:weightSum="3"

    android:orientation="horizontal">

     <LinearLayout

           android:id="@+id/first"

           android:layout_width="0dp"

          android:layout_height="match_parent "

          android:layout_weight="1"/>

     <LineraLyouat

          android:id="@+id/second

           위와 동일/> (third 또한)

</LinearLayout>

 

이런식으로 작성하신다음 java 코드에서

LinearLayout first = (LinearLayout) findViewById(R.id.first)

second, third도 동일

그리고

first.setOnTouchListener 해보시길 바래요, ClickListener이라던지

이 방법이 아니면 다른 방법으로는,

제가 금붕어라 기억을 잘 못하지만; ㅈㅅㅈㅅ

onclicklistener 쪽에서는,

public void onclick(View v)가 있을 텐데

if(v.getId()==R.id.first) 이런식으로 한 레이아웃을 클릭하게

 

ontouchlistener 또한 마찬가지로 View v, Motionevent event였나요??

위와 같이 하면 될거에요.

 

ㅈㅅ 이해안되면 다시 설명해드릴게요  ㅜ
Djleeee (13,180 포인트) 님이 2015년 3월 7일 답변
레이아웃으로 나누면안되고 하나의 이미지에서 구역을 나눠야되는거인지라..
이미지로 한 화면을 채우는 거라면, framelayout으로 아니면 surfaceview로 투명한 레이아웃을 덮어 씌운다음 레이아웃으로 나누어도 되는데요?
그 방법도 있었군요
감사합니다.
답변을 두분 다 채택드리지못하는게 아쉽네요
대신 추천을 드릴게요
...