Android:更改屏幕上的相机预览尺寸

发布于 2024-11-28 19:32:25 字数 1062 浏览 4 评论 0原文

目前,相机预览已拉伸以适合整个屏幕 (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));
    }
}

Currently, the Camera Preview is stretched to fit the entire screen (854x480). I'd like it to display (427x240) instead.

Here is the relevant code for the camera implementation:

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));
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

年少掌心 2024-12-05 19:32:25

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;
        }
    }

希望它有效!

saw this on developer.android.com:

If you want to set a specific size for your camera preview, set this
in the surfaceChanged() method as noted in the comments above. When
setting preview size, you must use values from
getSupportedPreviewSizes(). Do not set arbitrary values in the
setPreviewSize() method.

and wrote this to get the smallest:

        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;
        }
    }

hope it works!

恬淡成诗 2024-12-05 19:32:25

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

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

mCamera.setParameters(params);
only set the parameters. It will be passed to camera hardware.

To set preview window size, you have to modify the camera layout file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文