ドキュメントによると、setRotation(90)は、キャプチャされたJPEG画像を回転させる必要があります(横向きモードではtakePicture)。
これはHTC電話では正常に機能しますが、Samsung GoogleNexusSおよびSamsungGalaxyS3では機能しません。これはバグですか?
マトリックス変換ローテーションを使用できることは知っていますが、OSがこれをより効率的に実行できることを望み、他のデバイスで過度にローテーションするリスクを冒したくありません。
編集
プレビューをポートレートモードに設定camera.setDisplayOrientation(90);しましたが、撮影した写真には何の影響もありませんでした。
さらに、setRotation私は画像サイズを設定しようとしました-ここで私は:で反転hしwますparameters.setPictureSize(1200, 1600);。これも影響はありませんでした。
解決
どうやらSamsungの携帯電話は、個々のピクセルを回転させるのではなく、EXIF方向タグを設定しているようです。提案されているようariefbayuに、を使用してビットマップを読み取ることは、BitmapFactoryこのタグをサポートしていません。彼のコードサンプルがソリューションであり、このソリューションはの使用とも互換性がありinSampleSizeます。