2014.12.14 12:54

Android Wear API 가 새로 공개된 기념으로 코드 샘플을 보고 있는중에 중요한 부분들 기록


1. 퍼미션, 인텐트 필터 등록

일단 패키지 네임은 동일하다.


폰 어플리케이션 AndroidManifest.xml


웨어 AndroidManifest.xml


2. CanvasWatchFaceService 상속 및 Engine 인스턴스 리턴

여기는 폰용 WallpaperService랑 거의 같음.


3. onCreate 매서드를 오버라이딩하고 필요한 초기화 작업 수행

setWatchFaceStyle 에서 몇가지 값들을 셋하는데 Doc 을 참고해야할듯


4. onDraw매서드 오버라이딩하고 시계를 랜더링 한다

이 예제에선 Time 객체를 사용하는데 이게 편할듯(setToNow로 시, 분, 초 다 가져오기 편하다!)


5. onAmbientModeChanged 매소드 오버라이딩하고 앰비언트 모드 전환시 이벤트를 받는다

이 예제에선 단순히 안티 앨리어싱 옵션만 on/off 하고 있다. 여기서 중요한것이 invalidate()를 해준다는점. 그리고 updateTimer()를 호출하고 있는데 이 메소드는 단순히 핸들러에 메시지를 날리는것인데,,,핸들러 내부에서 자기 자신에게 다시 매시지를 날려서 진행하고 있음.(왜 이렇게 하는거지? 그냥 타이머 객체 사용해서 타이머태스크를 구현하면안되나?)

->

여기 핸들러를 보면, 타이머가 동작해야할때에 대해서 메시지를 호출하는데 이때 딜레이를 계산하는 부분이 중요하다. 하지만 이 부분은 굳이 이렇게 까지 복잡하게 할 필요 없이 Timer 클래스와 TimerTask 를 이용하면 자연스레 쉽게 구현이 가능해진다. 하지만 여기서 핸들러를 사용하는 이유는 아마 뷰의 invalidate() 때문인것 같다.


6. onInterruptionFilterChanged 메소드 오버라이딩하고 시계의 뮤트여부에 따라 콘트라스트를 조절한다.

시계에 뮤트 옵션이 있는거 같은데...이 뮤트상태일땐 화면의 콘트라스트를 낮춰야 한다.(밝기를 낮춰야 한다. 그래서 여기선 알파값을 조절해서 100% -> 약 39%로 낮추고 있다)



잘못된 부분은 언제나 피드백 환영합니다.

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 0


티스토리 툴바