我正在为 android 编写一个应用程序,它使用 SurfaceView 类来实现相机预览,它在 Nexus Galaxy 和 Desire HD 上运行良好
表面视图布局宽度/高度属性为 match_parent
但是我遇到了一个问题:在 SONY Xperia Z 上,屏幕分辨率是 1080p ,但是最大预览分辨率是 1280*720
因此,我的相机预览只占全屏的一部分,其他空间都是空白的。
如何让我的预览全屏?
我正在为 android 编写一个应用程序,它使用 SurfaceView 类来实现相机预览,它在 Nexus Galaxy 和 Desire HD 上运行良好
表面视图布局宽度/高度属性为 match_parent
但是我遇到了一个问题:在 SONY Xperia Z 上,屏幕分辨率是 1080p ,但是最大预览分辨率是 1280*720
因此,我的相机预览只占全屏的一部分,其他空间都是空白的。
如何让我的预览全屏?
在横向模式下像这样调整 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);
或者,如果您的应用处于纵向模式,请切换一些参数。
编辑:天哪,抱歉让这个半年前的问题复活了!