2010年6月28日月曜日

[Android]SurfaceViewとアノテーション

携帯アプリの移植のため、iPhone風にタッチパネルに指を滑らせる(フリックする)と画面が滑って切り替わる演出を作成しようとしました。

「throw Life - ActivityのOpenとCloseをアニメーションさせる」
http://www.adamrocker.com/blog/289/activity_open_close_animation.html

ここを参考にView + Themeによるアニメーションでも出来たのですが、設定がめんどくさい・・・(というかよく理解できていません・・・)

そこで調べてみると、ゲームのような画面描画が頻繁に行われるアプリにはSurfaceViewがいいとありました。
描画処理がViewより軽い模様。
これで携帯アプリと同じようにCanvasに画像をずらして描画して、タッチイベントに合わせてアニメーションしてるように動かせば実現できそうな気がします。

SurfaceViewにRunnableをインプリメントするか、別のThreadクラスにするか。
うーん。
携帯アプリの描画処理がCanvasにRunnableインプリして実装してあるので、とりあえずはRunnableでいきます。

早速、ネットをうろうろして他の方のコードを参考に書いてみました。
すると、親クラスからオーバーライドした surfaceCreated(SurfaceView surface) でいきなりのエラー。
見ると「@Override」をつけるとエラー、はずすとエラーじゃなくなります。

???

これも調べると同じ現象になった方がいらっしゃって、無事解決。
Javaコンパイルのターゲットバージョンを

Java1.5 ⇒ 1.6

と変更したら出なくなりました。
アノテーションというJava1.6で正式実装された機能なのですね。
携帯アプリでJava1.5までしか使ってなかったので知りませんでした。(言い訳)

0 件のコメント:

コメントを投稿