API を使用して自分で作成するアプリケーションではなく、組み込みのアプリケーションを使用するのはなぜですか? この方法でカメラを使用すると、さまざまな問題が発生します。結局のところ、完全な制御が必要な場合は、インテントを使用しないでください。API を介して写真を撮るための実用的な例がたくさんあります。
そのため、API を介してカメラを使用する場合、Camera クラスの setParameters メソッドを使用して CameraParameters オブジェクトをカメラ オブジェクトに渡し、さまざまなパラメーターを変更できます。
CameraParametersクラスには、画像のサイズを変更するために使用できるsetPictureSize (int , int) メソッドが含まれています。CameraParameters の getSupportedPictureSizes() メソッドを使用して、デバイスがサポートしている画像サイズを確認し、自分に合ったサイズを使用できます。
List<Size> sizes = mCamera.getParameters().getSupportedPictureSizes();
for (Size size : sizes) {
// Do something, e.g. :
menu.add(0, 1, 1, size.width + "x" + size.height);
}
また、画像のフォーマットをNV21に設定できるようです。これは未加工の形式であり、返された画像のピクセルを自分で簡単にサブサンプリングできます (4 ピクセルごとの平均として 1 ピクセルを取ると、画像の幅と高さの両方が 2 分の 1 になります)。