~2023
[ANDROID] java 파일에서 터치 이벤트 발생시켜 현재 터치 위치 표시하기
범범범즈
2021. 3. 30. 01:58
728x90
반응형
<실행 예시>

<풀이>
MyView.java(이하 커스텀 뷰)를 만들어 액티비티 화면으로 설정해 실습을 해봤습니다. 커스텀 뷰에서 터치 이벤트가 발생했을 때 (x, y)를 읽어와 안내하는 문자열을 출력했습니다.
커스텀 뷰 방법으로 했을 때 두 가지 주의해야 할 점이 있습니다. xml에서 class 속성을 필수로 추가해줘야 합니다.
ex) class="com.example.${PROJECT_PATH}.${CLASS_NAME}"
위 속성을 추가해준 후에 커스텀 뷰의 모든 생성자에서 부모 생성자를 호출해주면 됩니다.
ex) super(인자1, 인자2, ..)
여기까지 따라오셨으면 필수 설정은 끝났으니 커스텀 뷰에서 멤버로 Paint 객체를 만들어 TextSize를 정해주는 등 꾸미기만 하면 됩니다.
onDraw() 메소드는 단순히 화면에 안내 문자열을 쏴주는 메소드이며, onTouchEvent() 메소드는 터치 위치를 int값으로 전송합니다.
원래 getX() || getY()는 Float형을 반환하기 때문에 Int형으로 형변환해줍니다.
위치 값을 받은 후에 invalidate() 메소드를 통해 화면을 갱신해줍니다.
그러면 어느 화면을 터치하든 터치한 지점의 좌표 안내 문자열이 바로바로 갱신됩니다.
<코드>
mPosX, mPosY => (x, y) 좌표



728x90
반응형