问题1 相机预览画面变形
造成原因:
画面显示空间的长宽比例与相机预览的分辨率比例不一致
解决方案:
根据SurfaceView的长宽比例选择合适的相机分辨率,并调整SurfaceView的显示比例(因为相机预览的分辨率是固定的那几组,而你无法百分百确定选择相机的分辨率会和你SurfaceView的比例一致,所以,选择完相机预览分辨率后,你还得调整显示画面的比例)
/**
* 选择合适的预览尺寸
*
* @param choices
* @param textureViewWidth
* @param textureViewHeight
* @return
*/
private Size chooseOptimalSize(Size[] choices, int textureViewWidth, int textureViewHeight) {
//先查找preview中是否存在与surfaceview相同宽高的尺寸
for (Size option : choices) {
if ((option.getWidth() == textureViewWidth) && (option.getHeight() == textureViewHeight)) {
return option;
}
}
// 得到与传入的宽高比最接近的size
float reqRatio = ((float) textureViewWidth) / textureViewHeight;
float c