私は画像を添付し、メッセージングアプリの一環として、基本的にカメラアプリを開発していますなどのアプリは> = SDK 2.2のために働く必要があります。カメラのAPI:クロスデバイスの問題
私はできないアプリの性質は画像が今までディスクに保存してはならないことを指示し、いくつかのOEM(サムスン)が与えずにこれを行うのが大好き
:ので、私はしてみたいな限りデフォルトのAndroidのカメラを使用しますあなたは選択肢です。
他のカメラアプリがインターセプトできるという意図は、そのアプリが画像を保存できるため呼び出すことができません。
私の現在の問題は、Androidカメラが縦向きであることを明らかに嫌うという事実に対処しています。具体的には、私はディスプレイを監視しており、回転していくと、setDisplayOrientation(90)
と呼んでいます。これは動作しますが、サーフェスビューの寸法も変更する必要があります。サポートされている寸法内で行う必要があります。または、パラメータ設定がアプリをクラッシュさせます。
私はhere(getBestPreviewSize()
メソッド)という別のSOのスニペットでこれをやっていますが、他の誰かが見つけられなかったとは思わない1つの目立つ問題があります。
takePicture
ライフサイクルの一部には、PostView
ピクチャコールバックの呼び出しが含まれます。これは、現在の一時停止したSurfaceView
イメージの静止画がbyteArrayを介してrawおよび/またはjpegコールバックに返される様子を示しています。私の問題は、この画像は一見無作為のテスト装置の一部にまだ歪んでいるということです!そのため、ユーザーは画像を撮るまでの間、完全な4:3のアスペクト比でダイナミックなカメラ画像を見ることができ、提示された画像は盛り上がってしまいます。バイト配列自体は正しいことに注意してください。メッセージエンドポイントにBitmap
を作成すると、それはうまく表示されますが、これはまだ問題です。
この時点で静止画表示を変更する方法はわかりません。誰もこれで私を助けることができますか?
画像を実際に撮影したときに、以前のポストビュー画像のコールバックを保存して表示できますか?最後に撮影した画像データからビットマップを作成し、ポストビュー画像データの代わりにその画像を表示できますか?最終的な画像データが乱れているのか、サーフェスがあなたにどのように形を変えているのか、ということになると思います。 –