Camera Preview クラスでカメラのプレビュー サイズと画像サイズを設定しようとしています。しかし、カメラのプレビュー サイズと画像サイズを表示する Log.v では、logcat に何も表示されません。そのため、カメラのプレビューと画像が希望のサイズに設定されているかどうかはわかりません。私はエクリプスを使用しています。
Camera Preview コンストラクターから setCamera() を呼び出しています。
public CameraPreview(Context context, Camera camera) {
super(context);
mCamera = camera;
setCamera(mCamera);
// Install a SurfaceHolder.Callback so we get notified when the
// underlying surface is created and destroyed.
mHolder = getHolder();
mHolder.addCallback(this);
// deprecated setting, but required on Android versions prior to 3.0
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
また、設定したカメラには、プレビューのサイズと画像サイズを表示する Log.v があります。
public void setCamera(Camera camera) {
if (mCamera == camera) { return; }
mCamera = camera;
if (mCamera != null) {
List<Size> localSizes = mCamera.getParameters().getSupportedPreviewSizes();
mSupportedPreviewSizes = localSizes;
//parameters.setPreviewSize(mSupportedPreviewSizes.get(0).width, mSupportedPreviewSizes.get(0).height);
parameters.setPreviewSize(640, 480);
mCamera.setParameters(parameters);
parameters.setPictureSize(640, 480);
mCamera.setParameters(parameters);
Log.v(preview, "get preview size: " + parameters.getPreviewSize()
+ "get picture size: " +parameters.getPictureSize());
requestLayout();
try {
mCamera.setPreviewDisplay(mHolder);
} catch (IOException e) {
e.printStackTrace();
}
/*
Important: Call startPreview() to start updating the preview surface. Preview must
be started before you can take a picture.
*/
mCamera.startPreview();
}
}