0

円形のカメラプレビューを実装する必要があります。 TextureViewでcamera2 apiを使用しています。次のように私は、レイアウトを追加しました:円形ビュー内にカメラのプレビューを表示する必要があります

<FrameLayout> 
<TextureView/> 
<CircularImageView/> 
<FrameLayout/> 

私は以下の結果を得ていますこれを行う: enter image description here あなたが見ることができるように、カメラのプレビューが四角で表示されますが、私はそれは、円形の1になりたいされ、また、黄色の画像をバックグラウンドで保持します。どうすればこれを達成できますか?私は以前に尋ねられた同様の質問についていくつかの例を紹介しましたが、TextureViewではなく古いカメラAPIを使用して行われています。

何か助けていただければ幸いです。

答えて

0

CircularImageViewの代わりに、希望のサイズの円形の透明な穴があるpngを読み込む通常の画像ビューが必要です。幅とアンドロイド::高さ - >アンドロイド

<FrameLayout size="match_parent"> 
    <TextureView size=<calculated_to_match_camera> centered /> 
    <ImageView size="match_parent" src="full-screen-gradient-with-transparent-circle-in-center.png" /> 
<FrameLayout /> 

速記は、上記を前提としていサイズ

ので、提案された階層は、このようなものである可能性があります。テクスチャサイズは、カメラのプレビューアスペクト比に合わせてプログラムで設定され、その上のImageViewレイヤーの円形の穴から関心領域を露出させます。

+0

本当ですが、TextureViewを円形イメージに設定するにはどうすればいいですか?ご覧のとおり、TextureViewはまだ正方形です。また、問題はバックグラウンド画像(現在は黄色です)がグラデーション画像になるため、正方形の画像表示をすることができず、コーナーを不透明にしてサークルを透明にすることができません@Alex Cohn – Neha

+0

設定する必要はありませんTextureViewを円形のイメージに変換します。直方体のカメラプレビューに円形の「ウィンドウ」が必要です。グラデーションの背景については、背景全体を透明な円で描くことを検討してください(更新された回答を参照)。 –

+1

ソリューションをありがとう!私はグラデーションイメージの上に透明な円を描き、カメラビューの上にオーバーレイし、私が望む外観を達成することができました。 – Neha

関連する問題