0

我正在为 android 编写一个应用程序,它使用 SurfaceView 类来实现相机预览,它在 Nexus Galaxy 和 Desire HD 上运行良好

表面视图布局宽度/高度属性为 match_parent

但是我遇到了一个问题:在 SONY Xperia Z 上,屏幕分辨率是 1080p ,但是最大预览分辨率是 1280*720

因此,我的相机预览只占全屏的一部分,其他空间都是空白的。

如何让我的预览全屏?

4

1 回答 1

1

在横向模式下像这样调整 SurfaceView 的大小:

        // float camera_ratio = preview_size.width * preview_size / height; 
        ViewGroup.LayoutParams params = surfaceView.getLayoutParams();
        params.height = surfaceView.getHolder().getSurfaceFrame().height();
        params.width = Math.round(camera_ratio * params.height);
        surfaceView.setLayoutParams(params);

或者,如果您的应用处于纵向模式,请切换一些参数。

编辑:天哪,抱歉让这个半年前的问题复活了!

于 2013-11-04T16:08:08.627 回答