具有正确宽高比的安卓纹理视图全屏预览
2022-09-03 12:22:21
我一直在使用Google的camera2 api演示,不幸的是,示例应用程序旨在以大约70%的屏幕高度显示textureview预览,在环顾四周后,我能够确定这是由AutoFitTextureView覆盖该方法引起的,如下所示:onMeasure()
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = MeasureSpec.getSize(heightMeasureSpec);
if (0 == mRatioWidth || 0 == mRatioHeight) {
setMeasuredDimension(width, height);
} else {
if (width < height * mRatioWidth / mRatioHeight) {
setMeasuredDimension(width, width * mRatioHeight / mRatioWidth);
} else {
setMeasuredDimension(height * mRatioWidth / mRatioHeight, height);
}
}
}
我试图通过设置正确的高度和宽度来纠正这一点,这修复了高度问题,并从纹理视图中给了我一个全屏预览,但是宽高比在每个设备上都完全破碎和扭曲,解决这个问题的标准方法是什么?我看到Play商店中的许多应用程序都找到了解决此问题的方法,但无法找到修复程序,任何帮助都会有很长的路要走,谢谢。setMeasuredDimension(width, height);