안드로이드에서 룰렛을 구현하고 싶었다.
이미지를 활용하여 이미지만 회전시키는 형식의 룰렛은 많았지만
내가 직접 값을 입력할 수 있고 갯수를 설정하여 만드는 것에 대한 예시는 없었다.
그래서 직접 구현해 보았다.
1. 기본 UI 구현
간단하게 버튼 두 개와 가운데 룰렛을 그려줄 레이아웃 그리고 회전 버튼을 추가한다.
2. drawArc를 사용하여 호 그리기
canvas.drawArc() 의 매개변수를 설명하자면
- temp : Arc를 그릴 시작 각도
- sweepAngle : Arc의 각도
정도 이해하면 되겠다.
호를 그린 다음에 텍스트를 가운데 입력해주고 싶었는데 이 부분이 굉장히 어려웠다.
삼각함수를 활용하여 호의 중점을 알아내고
호의 중점과 원의 중점 가운데에 텍스트를 입력할 수 있도록 했다.
setRandom을 통해 호에 들어갈 숫자들을 랜덤으로 설정할 수도 있다.
getResult는 회전한 각을 계산하여서 결과값을 뽑아내는데
조금 더 간단하게 구현하고 싶었지만 방법을 알아내지 못하여 코드가 지저분하다. ㅠ.ㅠ
위의 버튼을 클릭하면 1, 2와 같이 룰렛이 그려지고 spin을 클릭하면 결과값을 받아올 수 있다.
3. 소스 코드
'Android Programming > Android Tips' 카테고리의 다른 글
키보드 위에 PopupWindow 띄우기 (0) | 2020.08.03 |
---|---|
ScrollView 안에 고정된 ListView 넣기 (0) | 2020.01.17 |
build.gradle (Project) 와 build.gradle (Module) 의 차이점 (0) | 2020.01.15 |