カメラのプレビューを表示する Android アプリの一部を構築しています。現在のデバイスで可能な正しい (最適な) プレビュー サイズを設定したいと思います。
これを実現するために、次のコードを使用しました。
public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int w, int h) {
Parameters parameters = camera.getParameters();
List<Size> sizes = parameters.getSupportedPreviewSizes();
// the list seems to be in that order, that the best quality is the first element
parameters.setPreviewSize(sizes.get(0).width, sizes.get(0).height);
camera.setParameters(parameters);
camera.startPreview();
}
私の質問は、次の方法がどのデバイスでも最高のプレビュー品質を得るのに適しているかどうかです。
public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int w, int h) {
Parameters parameters = camera.getParameters();
Size preferredSize = parameters.getPreferredPreviewSizeForVideo();
parameters.setPreviewSize(preferredSize.width, preferredSize.height);
camera.setParameters(parameters);
camera.startPreview();
}
現在、私は 1 つのデバイス (Nexus 4) しか持っていません。このデバイスでは、両方の方法で同じ結果が得られます。しかし、私はあなたがどの方法を提案するのか疑問に思っています。