2013年12月28日土曜日

[Android] アナログ時計のアプリを作ってみました

Analog clock on OpenGL
先日、時計が壊れてしまいました。デジタル時計は身近なところにありますが、アナログ時計は意外と少ないのでアプリを作ってみました。
画像の回転して表示する処理が必要なのでOpenGLを利用します。

今回の開発環境は次の通りです。
・64bit版 Windows8
・32bit版 Eclipse3.7 (Windows XPモードで使用)
・Android-SDK r22.3

針の画像です。
左から秒針、分針、時針のつもりです。
針の画像それぞれのピクセル数は32×128です。OpenGLで扱う画像なので128×128ピクセルにしたかったので一番右の黒い塗りつぶしの領域は使用しません。

Eclipseのパッケージ・エクスプローラーで、プロジェクトの res フォルダーの下に
drawable-nodpi
というフォルダーを作り針の画像を配置します。

以下ソースです。

アクティビティ(MainActivity.java)

※特別な権限(Permission)は不要なのでマニフェストは省略します。
Target SDK Version が4以上の設定でビルドできます。
Android1.6以降で動作します。
SH-03C(実機)、Android-SDK付属のエミュレーター、Blue Stacksで動作することを確認しています。

動作保証はできませんがとりあえず動作するようです。
SH-03Cで実行してみた画像です。
針の角度は1秒ごとに変化するようにしました。

これだけだと現在時刻が分かりにくいですね。
針の画像をかっこよくしたり文字盤の画像を追加すると実用性が上がるかもしれません。

関連ブログ
[Android] ストップウォッチアプリの表示をC言語でスムーズに改造する
[Android] ストップウォッチアプリを作ってみました
[Android] 方位センサーを使ってコンパスアプリを作る
[Android] OpenGLでプロ生ちゃんをアニメーションさせる
[Windows8][Android] Can't bind to local 8600 for debugger
[Android] 端末の傾きに立方体を連動させる
[Android] フリーサイズの画像をOpenGLのテクスチャに表示する
[Android] Android-NDKでテクスチャを表示するには
[Android] OpenGLで頂点の多いポリゴンを扱うには

以上、参考になれば幸いです。

0 件のコメント:

コメントを投稿