3

タブの1つにSurfaceView(カメラプレビュー付き)を含む「ポートレートモード」タブベースのアプリケーションがあります。私は Android API Demos からカメラ コードを作成してきましたが、すべて正しく動作するようにセットアップしました。結果のカメラ プレビューは引き伸ばされて拡大縮小され、プレビューが見栄えが悪くなります。

理想的には、タブ内のカメラによって定義されたネイティブ プレビュー サイズで SurfaceView をレンダリングしたいと考えています。ただし、それには、タブのコンテンツを親よりも大きくする必要があります! (または、タブ アクティビティが含まれている FrameLayout よりもかなり大きい)。

これを達成するにはどうすればよいですか?

問題の画像: ここに画像の説明を入力

4

1 に答える 1

0

FrameLayout をルート オブジェクトにして、そこにカメラ ビューを重ねてから、ヘッダーとタブ ウィジェットを重ねます。グラビティ設定や線形レイアウトでのヘッダー/フッターの積み重ねなど、手の込んだ作業が必要になる場合がありますが、それは間違いなく可能です。

別名:

frame.addView(cameraPreview);
frame.addView(header);
frame.addView(footer);

これにより、オブジェクトがレイヤーで描画されます。

編集: 現在のフレーム レイアウトを使用したくない場合は、別のフレーム レイアウトを作成してください。線形レイアウト内にヘッダー、フレーム レイアウト、およびフッターを積み重ねます。新しいフレーム レイアウトを作成し、それにリニア レイアウトを追加してから、プレビューを追加してその上に描画します。

于 2012-07-19T21:09:47.187 に答える