애니팡을 하던 중, 콤보를 빠르게 이어가기 위해 어디를 터치해야 할 지 알려 주는 어플을 만들면 어떨까 하는 생각이 들었다. 구상한 방식은 게임 플레이 시 화면에 표시되는 내용을 읽어들여서 각 블록들의 배치를 알아낸 뒤, 한 칸 이동시켰을 때 터지는 조건이 되는 그런 블록을 찾아낸다. 그렇게 블록을 찾아냈으면 그 블록이 있는 위치에 간단한 그래픽을 띄워 그곳을 터치해야 한다고 알려주는 것이었다.
그 전까지 안드로이드 프로그래밍을 한 번도 해 보지 않았기 때문에 그나마 익숙한 플래시(Adobe Air)를 사용하여 만들기로 하였다. 어플리케이션의 배경을 투명하게 하여 뒤쪽의 화면을 얻어오면 될 거라고 생각했다. 그래서 플래시빌더를 실행시켜서 배경이 투명한 어플리케이션을 하나 만들어 기기에 넣어봤는데 배경이 투명하지 않고 하얗게 나온다... 관련내용을 검색해 보니 AndroidManifest.xml을 수정해야 된단다.
activity 태그에 android:theme="@android:style/Theme.Translucent를 넣어 apk를 생성하려고 하니 오류가 발생했다. Adobe Air로 만드는 앱에서는 android:style을 오버라이드 할 수 없다는 것이었다.
결국 이클립스에 안드로이드 개발 환경을 세팅하게 되었다.(ANE를 쓰면 됐었을수도..)
우선 메인 Activity에 Theme.Translucent 스타일을 적용시켜보았다. 어플리케이션을 실행시키자 앱 실행 직전의 화면이 어플의 배경으로 나오는 것을 볼 수 있었으나 그냥 그림일 뿐 뒤쪽을 컨트롤은 할 수 없었다..
다음에는 메인액티비티에서 Service를 띄웠는데 이번에는 어플이 띄워진 상태에서 뒤쪽의 화면을 조작할 수 있었지만, getRootView().getDrawingCache();로 드로잉캐시를 얻어보니 투명한 이미지만 나왔다..
Service에서 Translucent테마를 적용한 액티비티를 띄워서 그 액티비티의 드로잉캐시를 얻어와 봐도 역시 0x00000000...
phandroid를 뒤져보니 Android Screenshot Library를 쓰면 된다는 내용이 있길래 예제를 받아서 실행시켜보았다. 하지만 아래와 같이 화면전체가 빨갛게 되거나, 위쪽 일부분만 찍힌 스크린샷만 나올 뿐이었다...
도시 해결방법을 알 수가 없었다. 그래도 라이브러리의 소스코드(소켓통신 하는 부분)을 조금 수정해서 실행은 시켜 봤는데.. 메인화면이 가로보기로 되고 화면이 노랗게 되거나 아이콘이 사라지는 등 핸드폰이 벽돌이 되어버릴 것 같은 불길한 현상들이 일어나서 그만두는 수밖에 없었다. (이 문제가 해결된다고 해도 화면 읽어오는 속도가 느려서 애니팡을 건드리기는 어려울 것 같다.)