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