3、カメラの設定値を取得
使用しているカメラの情報を取得しておく。
設定を変更したらそれらを設定しなおさなきゃいけないからね。
4、プレビューサイズを選択
さてと、これがいろいろ問題を引き起こすところです。
CameraInformation に、カメラのオブジェクトとプレビューする幅と高さをわたして、カメラがサポートしているプレビューのサイズを取得する。
実装の説明は、CameraInformation の記述で書きます。
今のところ、要件として、サポートされているビューサイズの中から適切なサイズを取得してほしい。
将来、ズームアップしたプレビューなどの要件が追加されても、このメソッドが使用できるように CameraInformation で工夫しないといけないかも・・・
5、プレビューのサイズを設定
選択したプレビューサイズを、設定する。
6、画像サイズを取得
プレビューデータを保存するとき、そのサイズを設定しておかなければならないらしいが、ひとまず、ここで、サポートされている画像サイズの中から指定する画像サイズを取得する。
画像サイズの指定は、ユーザがどれどれにしたいと要望を唱えるはずだから、外部から設定する仕組みを実装しなければならない。
それが、
/** * 画像サイズの設定値 画像サイズのインデックス 0:最大 値が増えると画像サイズは小さくなる<br> * 画像サイズは機種に依存するので、アプリケーションの設定などから取得、設定される。 */ private int pictureSize = 0; /** * 画像サイズを取得 * * @return 画像サイズのインデックス 0:最大 値が増えると画像サイズは小さくなる */ public int getPictureSize() { return pictureSize; } /** * 画像サイズを設定 * * @param pictureSize * 機種に依存する<br> * サポートされている画像サイズを知っておく必要がある。サポートされていない画像サイズを設定すると、プレビュー開始時に例外が発生する。<br> */ public void setPictureSize(int pictureSize) { this.pictureSize = pictureSize; }
メンバー変数の pictureSize である。
メンバー変数の命名について、少し触れておく。サンプルソースに private int mSize などと、mのSizeですと宣言されているのが良く見かける。
C++で m_ をメンバー変数につけてメンバー変数であることがわかりやすいと、規約されていたことがあったが、もしかして、その m ?
もしそうであれば、私はあえてそうはしない!
だって、メンバー変数かどうか、ソースの可読性を良くする手段とはおもえないから!
メソッド内で宣言している以外の変数であればメンバー変数でしょう。C++ではグローバル変数やマクロ変数などクラスやメソッド内で使用される変数のスコープが曖昧である。そのために、g_ だとか m_ だとか区別していた。
Javaでは必要ないでしょう。もし、必要であるなら、クラス設計そのものがおかしい!
それと、やたら public 変数が多い。
get 、setをコーディングするのが面倒? いやいやツールが自動生成してくれる。
参考書として説明を書いていくとページ内で収まらない? いやいやそんなことするから、使えないSE、プログラマを量産する、仕組みを構築していくのだ!
あくまでも参考書というのは、初心者やそれを学ぼうとしている者が読むものである。
報告書類、論文や研究成果の発表ならばいいけど・・・
なので、私は m には なりたくないから m を つけない。
わき道がたくさんあるので、次へとつづく・・・ To Be Continued…