[Android] 意外にも懐中電燈(FlashLight)アプリを作るのは難しかった件

| トラックバック(0) |

Android Marketには、FlashLightという名前(または、それに似た名前)の懐中電灯アプリが、たくさん公開されています。

 

FlashLightとは

画面全体を白色などの塗りつぶしで表示し、携帯のバックライトを懐中電灯として使うためのアプリケーション。

以前、まいむぞう先生の「照明スイッチからベッドまでのお供に「Flashlight」 | Androidあぷぷ -Androidのオススメアプリ情報を毎日お届け-
という記事でも紹介されていました。

flashlight.png

 

FlashLight仕様(機能)

実際に実機にインストールして仕様を調べてみたところ、以下のような機能がありました。

  • フルスクリーンで単一色(一般的には、白)の塗りつぶしを表示する
  • 任意の色に変更する
  • タッチされている間だけ色を変更する
  • 自動的に複数の色を変更させることにより、点滅表示する
  • (画面の)明るさを変更する

 

FlashLightを自作する

なるほど、こんな簡単な仕様なら、自分でも作れそうだということで、作成してみたところ、結構ハマリました。。。

 

まず、最初にハマったのが、フルスクリーン表示

フルスクリーン表示しているアプリってあったかと考え、
そういえば、デフォルトでインストールされている「Camera」アプリがそうだったと思い出し、

packages\apps\Camera\src\com\android\camera\ViewImage.java
[platform/packages/apps/Camera.git] / src / com / android / camera / ViewImage.java

に、それらしきコードがあることを発見し、解決。

※解決方法は、「フルスクリーン(Full Screen)/全画面表示をするには - 逆引きAndroid入門」へ掲載しました
※トラックバックをいただいていたサイト内の「完全にフルスクリーンにしたい - Androidで開発してみたい - android-dev」でも発見

 

そして次にハマったのが、色選択(カラーピッカー)

今更ながら、Android SDKには、標準のウィジットがないことに気付きました。。。
こちらも、どっかで見たはず、と記憶をたどり、
Android SDKに同梱されている「API Demos」サンプルアプリの「Graphics」 > 「FingerPaint」で使用されている
ColorPickerDialogクラスがあったことを思い出しました。ソースコードは、こちら、

platforms\android-1.5\samples\ApiDemos\src\com\example\android\apis\graphic\ColorPickerDialog.java

しかしながら、このクラスは、com.example.android.apis.graphicsパッケージにあったため、今回は、実装を見送りました。。。

 

そして最後の難関が、画面の明るさの変更。

こちらも、どっかで見たはず、と記憶をたどり、
デフォルトでインストールされている「Settings」アプリの「Sound & Display」 > 「Brightness」で実現されていたことに気づき、

packages\apps\Settings\src\com\android\settings\BrightnessPreference.java
[platform/packages/apps/Settings.git] / src / com / android / settings / BrightnessPreference.java

に、それらしきコードがあることを発見。
しかしながら、その実装方法は、非公開APIを使用していたため、断念し、
再度、gitからrepoで落としてきたAndroidのソースコードを、brightnessで全検索し、

development\apps\Development\src\com\android\development\PointerLocation.java
[platform/development.git] / apps / Development / src / com / android / development / PointerLocation.java

に、もっと良い方法があることを発見。

※解決方法は、「画面の明るさ(Screen brightness)を変更するには - 逆引きAndroid入門」(長文)に掲載しました
 (こんなとこにも、Android SDK 1.5 の変更があるとは。。。)

 

そして最後のオチ
色々苦労した結果、原稿を書きあげ、仕上げにGoogle検索で、原稿をチェックしていたところ、
以下にズバリの記事/コードがありました。。。

トラックバック(0)

トラックバックURL: http://mt.adakoda.com/mt-tb.cgi/158

Android Advent Calendar 2011

2012年2月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29