Android Camera アプリの落とし穴

NetBeans で Android 実機デバッグをやってみた で作ったカメラを使うアプリの落とし穴をメモ

public void surfaceChanged(SurfaceHolder holder, int format, int width,
        int height) {
    // カメラのプレビューのサイズを設定
    if (mCamera != null) {
        mCamera.stopPreview();
        setPreviewSize(width, height);
        // カメラのプレビューを開始
        mCamera.setPreviewCallback(previewCallback);
        mCamera.startPreview();
    }
}

private void setPreviewSize(int width, int height) {
    Camera.Parameters params = mCamera.getParameters();
    List<Camera.Size> supported = params.getSupportedPreviewSizes();
    if (supported != null) {
        for (Camera.Size size : supported) {
            if (size.width <= width && size.height <= height) {
                params.setPreviewSize(size.width, size.height);
                X_RATIO = (float) width / (float) size.width;
                Y_RATIO = (float) height / (float) size.height;
                mCamera.setParameters(params);
                break;
            }
        }
    }
}

一つ目の落とし穴

プレビューサイズはそのデバイスがサポートしているものをセットする。

上記コードでは setPreviewSize(width, height); でサポートしている解像度の一番大きいのを選んでます。

二つ目の落とし穴

デバイスに表示されるプレビューはカメラがサポートしている解像度と一緒ではない。(表現が変ですみません)

私の XPERIA arc では 640 X 480 のプレビュー画像を 854 X 480 に引き延ばして表示されてしまいました。

そのため顔認識で得た face.getMidPoint(point); の両目の中心位置情報とデバイスに表示される実際の位置がずれてしまいました。

合成用の画像を最後に追加したときの座標は 640 X 480 のまま引き延ばされないで表示されていました。(右側 214 余り(×_×)

融通が利かないというか・・・なんていうか・・・

しかたないので合成用の画像の座標位置に補正をかけることで対処しました。

以上、素人が落とし穴に落ちた状況をφ(..)メモメモ

対処方法とか、そもそも作り方が根本的に間違ってるかもしれませんが Android ってバージョンアップのスピードは速いし

次から次へと新しい機種が追加されるから落とし穴がけっこうあるかもしれないですね。

Hatena タグ:

ForkJoin Framework

JDK7 をインストールして確認したいことがあったので試してみました。

以前、「ForkJoin を NetBeans 6.8 で試してみた」でプロファイラがちゃんと動かなかったので

JDK7 と NetBeans 7.0 の組み合わせで動くのか試してみました。

おおっ! ちゃんと動くじゃないか!

1

2

やるな NetBeans それに JDK7

これでやっとすっきり眠れます(爆

Hatena タグ: ,

Java SE Development Kit 7

JDK6 の長い歴史から新しく JDK7 もリリースされた。

いろいろあってリーリースが遅れたし搭載される機能もごたごたしてとりあえず出しとくかって感じのリリースですね。

でも、 Java は進化する言語だから気にしない!

個人的には JSR295,JSR296 が搭載されなかった(今後の予定は無いのかな?)のは残念です。

JDK7 の新機能についてはこれからあちこちで紹介されるだろうし、ぼちぼちと覚えていこうと思います。

忙しい毎日がさらに忙しくなりそうです(>_<)

Hatena タグ:

NetBeans で Android 実機デバッグをやってみた

NetBeans の Android プログラミング用プラグインの NBANDROID でカメラを使ったアプリをほとんど古い雑誌から丸写しで作ってみた。

そのプログラムは WEB+DB PRESS という雑誌に載っていたものです。(Java PRESS とかって雑誌も昔はあったなぁ・・・)

Android SDK 開発のレシピ という Tip 本の著者である塚田 翔也さんが作られたものです。

雑誌には限られた誌面のなかで丁寧に解説がされていました。

しかし、私の使ってる XPERIA arc では動きませんでした。

それに twitter の認証が Basic は駄目になってるのようなのでその部分の機能は削除し

適当に画像をオーバーレイさせてみることにしました。

この前は NetBeans で実機のデバッグをすることができないとあきらめたのですが

今日はちょっと時間がとれたので試してみました。

以下にとりあえず実機でデバッグする方法を私的メモとして残しておきます。

もっとちゃんとした方法があると思うのですが NetBeans での実機デバッグの日本語での情報を見つけることができなかった。゜(゜´Д`゜)゜。

はじめにサービスウィンドウに Android Devices のノードに PC に USB デバッグモードで接続された端末があることを確認します。

AndroidManifest.xml ファイルに android:debuggable="true" と追記します。(必要かどうか検証してません)

11

プロジェクトウィンドウで プロジェクトを右クリック、そして [ デバッグ ] をクリックします。

12

デバイスの選択ウィンドウが出ますので

PC に接続されている実機を選択します。

Debug のチェックボックスにチェックを入れようとしてもいれられませんので無視します。

私は念のため、はいらないけどいちおうチェックをいれました(..;)

了解ボタンをクリックして進みます。

13

 

すると実機の画面にこんなメッセージが表示されます。

ここで [ Force Close ] ボタンを押したいところですがこのままにします。

15

サービスウィンドウの Android Devices ノードにある実機のノードに <unknown> pid: 18031 が生成されてます。

それを右クリック、 [ Debug this process ] をクリックします。

16

デバッグ実行が開始されます。

17

今回のプログラムではカメラ制御のところにウォッチポイントとブレークポイントを設定してあります。

18

ちゃんとデバッグできてますね。

NetBeans の慣れた環境で落ち着きます。

っていうか Android の開発なら eclipse のほうが強力なのは言うまでもないでしょうが NetBeans のほうが好き(#^.^#)

19

ちなみに XPERIA arc のカメラがサポートしている解像度もこれでバッチシですね。

20

最後にとりあえず動くようにできたので最近お気に入りの黒木 メイサちゃんを撮ってみました。

ちょっとスクリーンショットが切れてますがこんな感じにカメラを使い顔認識させ画像を合成させることができました(≧▽≦)

21

ちなみにスクリーンショットを撮るには サービスウィンドウの Android Devices ノードにある実機を右クリック

そして [ Take Device Screenshot.. ] をクリックするだけです。

14

まだリアルタイム顔認識の部分がちょっとおかしいのですが NetBeans のデバッガが使えないと思いこんでいて先日力技で修正してしまいました( ̄。 ̄;)

あとは合成用の画像をいくつか作って遊んでみることにします。

最後にこのプログラムの元を作り、雑誌に解説記事まで執筆してくれてこんな楽しいことが Android ならできることを教えてくれた

塚田 翔也さんに感謝いたします\(^_^)/

Hatena タグ: ,

XPERIA arc をバージョンアップ

Android SDK 2.3.2 という謎のバージョンが搭載されていたが先日 2.3.3 API レベル 10 にバージョンアップされました。

ついでに賑やかになるほどアプリもインストールされてました。

NetBeans の Android 開発用プラグインが新しくなっていたので顔認識アプリでもと思って古い本を引っ張り出してほとんどコードを丸写しにつくったが

強制終了の憂き目にあいました><

実機をつないでいるのでデバッグもできるだろうと思ったがデバイスを認識してくれてないようで(なんでやねん!)素直にあきらめました。

1.6 で動くアプリなのでこんなことになるなんて想像もしてなかっただけにショックが大きい。

Android って下位互換って厳しいんだろうか?

今度暇になったらカメラだけを利用するアプリからやり直そう。

Hatena タグ:

Android SDK のバージョンアップ方法 ( Windows )

Android SDK をインストールしたディレクトリ内にある tools ディレクトリの中にある android.bat を実行する。

あとはおまかせで適当に

自分用メモでした。

Hatena タグ:

いつのまにかゴールデンウィーク

ずっとブログの更新さぼってました。

東北地方の大地震は私の住んでるところにも少しだけ影響がありました。

私の住んでるところは海沿いの街で、海岸まですぐ近くの所にあります。

地震による津波警報が出て、避難しろと役所の広報がうるさくいってました。

当日夜勤明けで寝ていた私はそれで起こされどうしたものかと思ってました。

以前にも津波がくるかもしれないから避難しろということがあったのですが確か2,30センチの津波でなにもなかったといっても過言ではないくらいでした。

今回はテレビで2メートルとか言っていたので避難しようかと相談したところ脳天気な私の一家は2メートルなら堤防があるから大丈夫よということで避難しませんでした。

幸い津波による被害はなくよかったのですが、テレビで東北地方の津波による被害を目の当たりにしたときは唖然としました。

信じられないことが起こってしまった。

おまけに原子力発電所の津波による故障で安全対策が不十分であったことが露呈された。

これは東京電力だけの問題でなく日本の原子力発電所がかかえる重大な問題だと個人的には思う。

いずれにせよ東北地方の復興を心からお祈りします。

昨日からゴールデンウィークに突入した私はアッシーくん、おさいふくん、とこき使われております。

これなら普通の休日だけでいいや!っておもえてきました。(><)

5日までごろごろしてすごしたいよ~~~~~!

NetBeans IDE 7.0 Beta をネタに動画を試してみる

この前に紹介した Arun Gupta さんのブログ記事を試してみました。

Screencast #35: JDK 7 Project Coin Features in NetBeans IDE 7.0 Beta

今回の目的は、ブログに動画を貼り付けるということです(^^;;;

よって、 NetBeans を使って JDK 7 の Project Coin の機能を試すことが目的ではありません。

それらに興味のあるかたは上のリンクをたどって次期 NetBeans と JDK 7 の新機能をご確認くださいませ。(感動ものです!)

とりあえず、ふらだんすという無料の動画プレーヤーを使わせていただきました。

ファイルサイズが 190.36MB くらいあるので超おもいです。

ブロードバンドコンテンツということで・・・ 許してください。

ついでに YouTube で全く同じものを(ごめんね~)

こういうことに慣れていないので、たったこれだけのために丸一日費やしてしまった(><)

追記 : NetBeans IDE 7.0 Beta 2 & JDK 7 build 131 で ARM も正常動作を確認しました(^^)

Hatena タグ: ,,

あけましておめでとうございます

ついついさぼって新年の挨拶が今日になってしまいました(^^;

今年は遅れに遅れた JDK7 がリリースされる予定なので楽しみにしています。

年末年始で体重が・・・ お腹のあたりの贅肉が・・・

ちょっとやばくなってきたので今年もダイエットが目標となりました。

一時期は体脂肪が 9 パーセントまで落ちたのが今は 28 パーセント(><)

今年中に一桁まで落とせるかどうか・・・

ぼちぼちとがんばってみます。

とりあえずお正月休みが終わってから(爆

NetBeans7.0 + JDK7 凄いぜ!

Screencast #35: JDK 7 Project Coin Features in NetBeans IDE 7.0 Beta

こちらのビデオをみると NetBeans7.0 は JDK7 で動かしたくなる。

英語が解らないので喋ってる内容は解らないが Project Coin は少しだけ追いかけていたのでやってることはわかる。

JDK7 の文法に NetBeans7.0 がコンバートのヒントを出してそれを実行するとちゃんと変えてくれるのは凄い!

このビデオで収穫だったのはいつの間にかマルチキャッチが実装されていたことです。(秘密)

もちろん、今までのだらだらキャッチも賢い NetBeans7.0 がマルチキャッチにコンバートしてくれます。

明日も5時起きなので実際に動かしてスクリーンショットを撮ってブログにアップする時間はないので今日はこれで寝ます(^^;

って、今までコンバート機能があることを知らなかった。

Project Coin の内容は今までいろいろ試してブログに投稿してあるのでまぁ、いいか。

Sun がオラクルに身売りして Java は終わったという声があちこちで聞かれるが Java は進化のスピードこそ落ちてもまだ終わってない!

JDK7 そしてラムダが採用される? JDK8 が楽しみですね。

Hatena タグ: