基本的に、画像などを添付するメッセージング アプリの一部としてカメラ アプリを開発しています。アプリは >= SDK 2.2 で動作する必要があります。
次の理由により、デフォルトの Android カメラを思うように使用できません。
アプリの性質上、画像をディスクに保存するべきではなく、一部の OEM (Samsung) はユーザーに選択権を与えずに保存することを好みます。
そのアプリが画像を保存できるため、他のカメラアプリがインターセプトできるインテントを呼び出すことはできません。
私の現在の問題は、Android のカメラが明らかに縦向きになるのを嫌うという事実に対処することです。具体的には、掘り下げた後、ディスプレイを監視し、ローテーションで を呼び出してsetDisplayOrientation(90)
います。これは機能しますが、サーフェスビューの寸法も変更する必要があり、これはサポートされている寸法内で行う必要があります。そうしないと、パラメーター設定によってアプリがクラッシュします。
ここで見つけた別のSOスニペット(getBestPreviewSize()
メソッド)でこれを行っていますが、他の誰も持っていないとは信じられない1つの明白な問題があります。
ライフサイクルの一部には、ピクチャ コールバックtakePicture
の呼び出しが含まれます。PostView
これは現在一時停止している画像の静止画像を示しており、SurfaceView
byteArray を介して raw および/または jpeg コールバックに返されます。私の問題は、一見ランダムに見える一握りのテストデバイスで、この画像がまだ歪んでいることです! したがって、動作は、ユーザーが写真を撮り、提示された画像がつぶれるまで、完全な 4:3 のアスペクト比で動的なカメラ画像を見ることです。バイト配列自体は正しいことに注意してくださいBitmap
。メッセージング エンドポイントで を構築すると問題なく表示されますが、これはまだ問題です。
この時点で、静止画の表示を変更する方法がわかりません。誰でもこれで私を助けることができますか?