简介
我使用CaptureRequest.Builder并提供两个表面作为目标:a SurfaceTexture用于绘制GL,ImageReader(getSurface())用于处理帧。< / p>
我通过设置surfaceTexture.setDefaultBufferSize并创建ImageReader.newInstance来设置所需的分辨率640x480。
问题
似乎SurfaceTexture OpenGL纹理获得的图像与640x480(4:3)不同,更像是2560x1440(16:9)(SurfaceTexture占据全屏,见< strong> IMG 3 )。必须注意的是,两部手机具有相同的分辨率宽高比 16:9 。 (故意留下从侧面偏移的纹理)。
您可以在显示器屏幕上看到 IMG 1 , IMG 2 和 IMG 3 是当前活动视图中的手机屏幕截图正在显示相机预览。
问题
如何正确强制SurfaceTexture或GLSurfaceView.Renderer从相机获取特定的(在这种情况下为4:3)宽高比纹理图像,以获得任意大小的视图?
相关
必须注意的是,an app解决了问题,但they change the view size符合所需的宽高比。
另见:
IMG 2 - 良好的宽高比(Google Nexus 5 - Android 6.0.1):
IMG 3 - 纹理宽高比不佳(LG-D855 - Android 5.0)
答案 0 :(得分:0)
&#34;固定&#34;通过将LG手机更新到Android 6.0的问题。