반응형
안드로이드(Android) 경고 - Custom view… overrides onTouchEvent but not performClick |
환경 : Eclipse Mars, Android 4.2.2 |
View 위젯을 상속받아 클래스를 구현하는데 onTouchEvent() 함수를 작성하는 중 아래와 같은 경고가 나오는 경우가 있습니다.
▼ Custom view com/example/samplebooksearchapi/
DrawTouchActivity$DrawTouchView overrides onTouchEvent but not performClick
▼ 이것은 사용자 정의 컨트롤이 표준이 아닌 터치 이벤트가 발생할수 있기 때문입니다. 예를 들어서 onTouchEvent() 함수에서 ACTION_DOWN, ACTION_UP 이벤트들이 개입할수 있습니다. 이런 접근성 서비스에 대한 코드 호환성을 유지하기 위해 적절한 조치가 필요한 것입니다. 이런 개입은 터치 스크린을 사용할수 없는 사용자들에 대한 클릭이벤트들이 있습니다. 요구사항을 해결하기 위해서 performClick() 함수를 오버라이딩해서 상위함수 performClick() 를 한번 호출해 주고 ACTION_UP 이벤트에서 performClick() 함수를 호출합니다. 아래 소스를 참조하시기 바랍니다.
@Override public boolean onTouchEvent(MotionEvent event) { int action = event.getAction(); if (action == MotionEvent.ACTION_MOVE) { float x = event.getX(); float y = event.getY(); radius = (float) Math.sqrt(Math.pow(x - initX, 2) + Math.pow(y - initY, 2)); } else if (action == MotionEvent.ACTION_DOWN) { initX = event.getX(); initY = event.getY(); radius = 1; drawing = true; } else if (action == MotionEvent.ACTION_UP) { drawing = false; performClick(); } invalidate(); return true; } @Override public boolean performClick() { return super.performClick(); }
반응형
'안드로이드 개발' 카테고리의 다른 글
안드로이드(Android) getWidth() from the type Display is deprecated 수정 (0) | 2014.12.02 |
---|---|
안드로이드(Android) SurfaceView 와 Thread 를 이용해 화면에 도형표현 하기 (0) | 2014.12.01 |
안드로이드(Android) 두개의 사용자정의 View 를 FrameLayout 으로 표현하기 (0) | 2014.11.30 |
안드로이드(Android) onDraw() 를 이용해 스크린터치로 원그리기 (1) | 2014.11.29 |
안드로이드(Android) onDraw 함수를 이용해 화면에 비트맵이미지, 도형 그리기 (0) | 2014.11.27 |
안드로이드(Android) 코드경고 – Avoid object allocations during draw/layout operations (preallocate and reuse instead) 해제 하기 (0) | 2014.11.26 |
안드로이드(Android) RSS 구현5 - RSS 제목별 상세내용 구현 (1) | 2014.11.25 |
안드로이드(Android) RSS 구현4 - RSS 피드 구현 제목,타이틀등 상세 구현 (0) | 2014.11.24 |