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

Android:更改屏幕上的相机预览大小,android,android-layout,android-camera,Android,Android Layout,Android Camera,当前,相机预览被拉伸以适合整个屏幕(854x480)。我想改为显示(427x240) 以下是摄像头实现的相关代码: mCamera.setParameters(参数); 只设置参数。它将被传递到相机硬件 要设置预览窗口大小,您必须修改相机布局文件。在上看到: 如果要为相机预览设置特定大小,请设置此选项 在上面注释中提到的surfaceChanged()方法中。什么时候 设置预览大小时,必须使用中的值 getSupportedPreviewSizes()。请勿在中设置任意值 setPreviewS

当前,相机预览被拉伸以适合整个屏幕(854x480)。我想改为显示(427x240)

以下是摄像头实现的相关代码:

mCamera.setParameters(参数); 只设置参数。它将被传递到相机硬件

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

在上看到:

如果要为相机预览设置特定大小,请设置此选项 在上面注释中提到的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;
        }
    }
List List=mCamera.getParameters().getSupportedPictureSizes();
Size=list.get(0);
int height=size.height;
int minHeight=9999999;
对于(int i=0;i
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));
    }
}
        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;
        }
    }