【发布时间】:2016-11-26 21:11:58
【问题描述】:
我一直在使用camera2 api demo from google,不幸的是,示例应用程序被构建为在屏幕高度的大约 70% 处显示纹理视图预览,环顾四周后,我能够确定这是由 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);
}
}
}
我试图通过在setMeasuredDimension(width, height); 中设置正确的高度和宽度来纠正这个问题,这解决了高度问题并给了我从纹理视图的全屏预览,但是纵横比在每个设备上都完全被破坏和扭曲,什么是解决这个问题的标准方法吗?我看到 Play 商店中的许多应用都找到了解决此问题的方法,但还没有找到解决方法,任何帮助都会有很大帮助,谢谢。
【问题讨论】:
-
嘿,您找到任何解决方案了吗?面临同样的问题..请帮忙。
-
答案更新如下
标签: java android android-camera android-camera2 android-textureview