私はGoogle の camera2 API デモを使用していましたが、残念ながらサンプル アプリケーションはテクスチャビュー プレビューを画面の高さの約 70% で表示するように構築されています。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ストアの多くのアプリがこの問題を解決する方法を見つけましたが、修正を追跡することはできませんでした.