0

원형 카메라 미리보기를 구현해야합니다. TextureView와 함께 camera2 API를 사용하고 있습니다. 다음과 같이 내가 레이아웃을 추가 :원형 뷰 내에서 카메라 미리보기를 표시해야합니다.

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

나는 아래의 결과를 얻고 이렇게 : enter image description here 당신이 볼 수 있듯이, 카메라 미리보기가 사각형으로 표시,하지만 난 그 원형이 될하고자한다, 또한 백그라운드에서 노란색 이미지를 유지합니다. 이것을 어떻게 할 수 있습니까? 이전에 비슷한 질문에 대해 몇 가지 예를 언급했지만 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는 여전히 정사각형입니다. 또한 문제는 배경 이미지 (현재 노란색)가 그라디언트 이미지가 될 것이므로 정사각형 이미지 뷰를 만들 수 없으며 모서리를 불투명하게 만들 수 없으며 원은 trasnparent @Alex Cohn입니다. – Neha

+0

설정하지 않아도됩니다. TextureView를 원형 이미지로; 직사각형 카메라 미리보기에 원형 "창"만 있으면됩니다. 그라디언트 배경의 경우 전체 배경을 투명한 원으로 이미지를 만드는 것이 좋습니다 (업데이트 된 답변 참조). –

+1

솔루션을 제공해 주셔서 감사합니다! 그라디언트 이미지 상단에 투명한 원을 그려 카메라보기 상단에 겹쳐서 원하는 모양을 얻을 수있었습니다. – Neha

관련 문제