DroidX を使用して、カメラのプレビュー画像を使用するアプリを開発しています。私が使用しているコードは Web 上のさまざまな場所にありますが、一般的なメソッド "getBestPreviewSize(width,height,camera.parameters)" が返すサイズが非常に小さいため、標準的な decodeYUV420SP メソッドが null ポインター例外で失敗することに気付きました。
いくつかのデバッグにより、私の DroidX でサポートされているプレビュー サイズは次のようになります。
- 144h×176w
- 縦240×横320
- 288h×352w
- 縦480×横640
- 縦480×横720
- 448h×800w
- 縦720×横1280
高さと幅の値は、横長の遠近感を与えることに注意してください。これは、カメラの向きによって変わりません。渡されるサーフェスの幅と高さgetBestSupportedPreviewSizes
は 480w x 778h です。
camera.parameters を渡すとgetBestSupportedPreviewSizes()
、288 x 352 のサイズが返されます。呼び出しコードは次のとおりです。フォーマットがオフの場合は申し訳ありませんが、次のとおりです。
if (!cameraConfigured) {
Camera.Parameters parameters=camera.getParameters();
Camera.Size size=getBestPreviewSize(pwidth, pheight, parameters);
if (size!=null) {
parameters.setPreviewSize(size.width, size.height);
camera.setParameters(parameters);
cameraConfigured=true;
}
}
pwidth
およびコールバックの幅と高さのパラメーターpheight
からのものです。surfaceChanged
私は camera.setDisplayOrientation(90); を試しました。onResume() で。マニフェストに orientation("Portrait") も入れました。これらの試行の 4 つの組み合わせのいずれも、この動作を変更していないようです。
私の考えは単純にそれらを逆にすることですが、非常に多くのレベルで間違っていると感じています. この無料で入手できるコードは、他の非常に多くの例で証明されているように見えるので、明らかに間違ったアプローチをしています。誰かがこの行動についての洞察を提供できますか?
前もって感謝します。