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

웹뷰 onTouchEvent에 기능 추가하기

0 추천
 webView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                switch (motionEvent.getAction()){
                    case MotionEvent.ACTION_UP:
                    case MotionEvent.ACTION_DOWN:
                    case MotionEvent.ACTION_MOVE:
                        imageView.setVisibility(view.VISIBLE);
                        imageView.setX(motionEvent.getX());
                        imageView.setY(motionEvent.getY());
                }
                if(motionEvent.getAction() == MotionEvent.ACTION_UP)
                    imageView.setVisibility(view.INVISIBLE);
                return true;
            }
        });

이런식으로 웹뷰의 onTouchEvent를 이용하여 pointer(마우스커서모양의 이미지뷰)의 움직임을 보이게 했더니 웹뷰(네이버홈페이지)의 터치이벤트가 하나도 실행이 안됩니다. 어떻게해야 같이 공존 할 수 있을까요?

웹뷰에 있는 onTouchEvent(MotionEvent event)를 기존에 있는 기능은 그대로 사용하고

제가 또 다른 기능을 추가하고 싶은데 어떻게해야하죠?

이진규 (340 포인트) 님이 2018년 1월 22일 질문
for(int index=0; index<webView.getChildCount(); ++index) {
    View nextChild = webView.getChildAt(index);
    nextChild.dispatchTouchEvent(motionEvent);
}
nextChild.dispatchTouchEvent(motionEvent);

이 부분에서 motionEvent에
switch (motionEvent.getAction()){
                   case MotionEvent.ACTION_UP:
                   case MotionEvent.ACTION_DOWN:
                   case MotionEvent.ACTION_MOVE:
                       imageView.setVisibility(view.VISIBLE);
                       imageView.setX(motionEvent.getX());
                       imageView.setY(motionEvent.getY());
               }
               if(motionEvent.getAction() == MotionEvent.ACTION_UP)
                   imageView.setVisibility(view.INVISIBLE);
이 기능을 넣고 싶은데 어떻게 motionEvent를 정의해주나요?
맨 마지막 return false;로 변경해보세요
덕분에 됩니다. 감사합니다!

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...