Android:更改相机预览在屏幕上的大小

4

目前,相机预览会被拉伸以适应整个屏幕(854x480)。我希望它显示为(427x240)。

这是相机实现的相关代码:

Camera.Parameters params = camera.getParameters();
params.setPreviewSize(427, 240); 
mCamera.setParameters(params);
public class CameraTest extends Activity {    
    private Preview mPreview;
    private DrawOnTop mDrawOnTop;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Hide the window title.
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        // Create our Preview view and set it as the content of our activity.
        // Create our DrawOnTop view.
        mDrawOnTop = new DrawOnTop(this);
        mPreview = new Preview(this, mDrawOnTop);
        setContentView(mPreview);
        addContentView(mDrawOnTop, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    }
}
2个回答

1

我在developer.android.com上看到了以下内容:

如果您想为相机预览设置特定大小,请按照上面的评论在surfaceChanged()方法中设置。设置预览大小时,必须使用getSupportedPreviewSizes()返回的值。不要在setPreviewSize()方法中设置任意值。

并编写以下代码以获取最小值:

        List<Size> list = mCamera.getParameters().getSupportedPictureSizes();
    Size size = list.get(0);
    int height = size.height;
    int minHeight=9999999;
    for(int i = 0; i<=list.size(); i++){
        if(list.get(i).height<minHeight){
            minHeight = list.get(i).height;
        }
    }

希望它能正常工作!

0

mCamera.setParameters(params); 仅设置参数。它将传递给相机硬件。

要设置预览窗口大小,您需要修改相机布局文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接