为了账号安全,请及时绑定邮箱和手机立即绑定

Android Java:Camera2 预览图像被拉伸

Android Java:Camera2 预览图像被拉伸

猛跑小猪 2021-10-13 16:23:20
我目前正在使用 camera2 API 制作我的 android 应用程序。我能够制作图像,保存它们,编辑它们等等。但是我的相机总是被拉长。我使用的是三星 Galaxy Tab A 和三星 Galaxy Note 8,所以不是 16:9 的比例。首先,我只在横向模式下拍照。我的textureView与我的显示器的大小完全相同。我的预览应该更好,因为我也使用它的大小来保存图像。但如果将其设置为与我的显示器相同的尺寸,我会得到拉伸图像。            //getting the ratio, correct setting of sizes        if (verh == sechzehnzuneun) {            newSize = new Size(2300, 1350);        } else if (verh == sechzehnzuzehn) {            newSize = new Size(2400, 1500);        } else if (verh == note8) {            newSize = new Size(2792, 1440);        }//also used for saving        _imageDimension = newSize;        //used for rotating the preview, otherwise i geht some strange portrait camera Matrix matrix = new Matrix();        int rotation = getWindowManager().getDefaultDisplay().getRotation();        RectF textureRectF = new RectF(0, 0, _textureView.getWidth(), _textureView.getHeight());        RectF previewRectF = new RectF(0, 0, _imageDimension.getHeight(), _imageDimension.getWidth());        float centerX = textureRectF.centerX();        float centerY = textureRectF.centerY();        if (rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270) {            previewRectF.offset(centerX - previewRectF.centerX(),                    centerY - previewRectF.centerY());            matrix.setRectToRect(textureRectF, previewRectF, Matrix.ScaleToFit.FILL);            float scale = Math.max((float) width / _imageDimension.getWidth(),                    (float) height / _imageDimension.getHeight());            matrix.postScale(scale, scale, centerX, centerY);            matrix.postRotate(90 * (rotation - 2), centerX, centerY);        } 我得到了上层代码的 if 情况。但是看(只看纵向,但没有方向变化,总是水平的)
查看完整描述

1 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

你看在AutoFitTextureView从谷歌样品camera2应用程序?

没有特别保证相机设备完全支持设备的显示尺寸,如果不支持,则选择接近请求尺寸的尺寸。但这可能不会具有相同的纵横比。

您需要选择相机设备实际支持的尺寸,然后将 TextureView 设置为匹配的纵横比。


查看完整回答
反对 回复 2021-10-13
  • 1 回答
  • 0 关注
  • 845 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信