【发布时间】:2015-02-26 05:28:12
【问题描述】:
我正在尝试在 android 中创建自定义相机。我想设置要拍摄的照片的确切尺寸。我希望这个确切的大小是用户在预览中看到的。如何设置确切的尺寸? (尺寸是指宽度和高度:尺寸)
我在android literatures 中找到以下措辞:
如果你想为你的相机预览设置一个特定的大小,设置这个 在上面的 cmets 中提到的 surfaceChanged() 方法中。什么时候 设置预览大小,您必须使用来自的值 getSupportedPreviewSizes()。不要在 setPreviewSize() 方法。
这一段是否指定了我需要做什么或它是否与其他事情有关?无论如何,有没有人有任何代码 sn-p 来说明我将如何设置大小?假设我想要一个方形图像,我将如何指定它以便预览和最终图像都是方形?
目前我的surfaceChanged方法如下
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
if (mCamera != null) {
try {
mCamera.setPreviewDisplay(holder);
if (mIsCapturing) {
mCamera.startPreview();
}
} catch (IOException e) {
Toast.makeText(CameraActivity.this, "Unable to start camera preview.", Toast.LENGTH_LONG).show();
}
}
}
感谢您的帮助。
另外,如果它很重要,我的布局是
<FrameLayout
android:id="@+id/camera_frame"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" >
<ImageView
android:id="@+id/camera_image_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<SurfaceView
android:id="@+id/preview_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
【问题讨论】:
-
看看Camera.parameters,在开始预览之前设置尺寸。
标签: android camera size android-camera surfaceview