SUGARSPOT

Androidアプリ、WEBサービス開発の SUGARSPOT  |Androidブログ「Androidのことなんだけど」もやってます

2011年8月31日水曜日

[Android]縦向きカメラアプリを作るのが思ったより大変だった

つい先日リリースしたアプリ「恐怖のおるすばんスナップカメラ」は、端末を縦向きに使うカメラアプリです
撮影した写真は、ちょっとイタズラ要素の入ったポラロイド風の写真になります

このアプリを作る際に、簡単に出来ると思っていたカメラを縦向きで使う事が、思ってたよりも大変だったので、作る際の(あまり役に立たないかもしれない)コツを書いておきます

まず、Androidのカメラって機種にもよりますが横向きで使う事を標準としています

これが標準










これを、縦にするとなんとなくOKにみえるけど
















保存すると、当然こうなります








横向きに保存されちゃう訳です。これは機種によっては異なるかもしれませんし、横向きで保存しておきながら、ギャラリーで見せるときには回転して正しい向きで表示する物もあります

「なんだ。じゃぁ、いいか」・・・と、
ただ画面いっぱいに撮影するカメラなら良さそうなのですが、
今回つくりたいアプリが正方形の写真が撮影できるものにしたかったので、これでは不味い


(作りたいアプリのイメージ)














まず、見た目を作るのに"何をしたか"というと、表示する部品は全て横向きで用意しました
こんな感じ















部品となる画像とかを横向きで用意すれば、縦で使った時に正しく表示されます
注意する点として画面が回転してしまうと思ったような表示にはならないので、向きは固定してしまいます

でも、ここで問題

横向きのアプリを、むりやり縦向きのアプリのように見せて使ってもらうだけなので、Android OSとしては、このアプリを横向きのアプリとして認識しています
なので、メニューとか、HOMEボタン長押しで表示される画面が横向きに表示されてしまいます


メニューは、こんな感じになってしまう














これは回避する方法がないので、解決方法としては「メニューは標準の物を使わない!」という事になる
具体的な方法としては、「画面にはじめからメニュー用のボタンを用意しておく」とか、「端末のメニューキーが押されたイベントを横取りして、自分の表示したいメニューを作って表示しちゃう」という事になります

今回のアプリでは、ABOUTという説明だけを表示したかったので、画面の中にABOUTを表示するボタンを設置しました


これで見た目はOKなのですが、写真を撮影すると画面が横に保存されてしまうので、保存されるまえに画像を回転する処理が必要になります
また、今回のアプリは正方形に写真を作りたかったので、正方形に切り取る処理を入れたりも必要です
そんな色々な処理や、写真の合成とか色々と大変な所があったのですが、詳しい作り方などは割愛します

もし聞きたい場合はどこかでお会いした際にでも直接聞いてください
(直接聞いても役に立つ情報が得られるかは保障しませんー)


以上。
簡単でしたが、縦向きのカメラアプリを作る際の(あまり役に立たないかもしれない)コツ。を紹介しました

0 件のコメント:

コメントを投稿