牙叔教程 简单易懂
全屏显示照相机拍摄画面
自动对焦
// 设置自动曝光模式 mPreviewBuilder.set( CaptureRequest.CONTROL_AF_MODE, new java.lang.Integer(CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH) ); // 设置自动对焦模式 mPreviewBuilder.set( CaptureRequest.CONTROL_AF_MODE, new java.lang.Integer(CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE) );
曝光代码可以删掉, 但是不可以放到对焦后面, 否则就不自动对焦了
解决camera2拉伸变形
let viewWidth = mTextureView.getWidth(); let viewHeight = mTextureView.getHeight(); let scale = mPreViewSize.getWidth() / viewHeight; viewWidth *= scale; viewHeight *= scale; let matrix = new Matrix(); let viewRect = new RectF(0, 0, viewWidth, viewHeight); let bufferRect = new RectF(0, 0, mPreViewSize.getHeight(), mPreViewSize.getWidth()); matrix.setRectToRect(viewRect, bufferRect, Matrix.ScaleToFit.FILL); let translateX = (mPreViewSize.getWidth() - mTextureView.getHeight()) / 2; matrix.postTranslate(-translateX, 0); mTextureView.setTransform(matrix);
镜头拍摄的画面, 大概是一个正方形, 全屏显示的话, 手机是长方形, 这就是拉伸变形的原因;
通过对matrix的缩放和平移, 可以解决该问题
以上就是初学camera2问题最频繁的两个点,
相关教程
https://www.yuque.com/go/doc/61682400
参考
名人名言
思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问
--- 牙叔教程
声明
部分内容来自网络
本教程仅用于学习, 禁止用于其他用途