Я работал с камерой2 api demo из 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);
, это зафиксировало проблему с высотой и предоставило мне полноэкранный предварительный просмотр из текстурного изображения, однако соотношение сторон полностью сломано и искажено на каждом устройстве, что это стандартный способ его устранения? Я вижу, что многие приложения в игровом магазине нашли способ решить эту проблему, но havent удалось отследить исправление, любая помощь пройдет долгий путь, спасибо.