2013-03-13 1 views
1

저는 example guide을 사용하여 SurfaceView 클래스에서 상속 받고 카메라 미리보기를 표시하는 CameraPreview 클래스를 생성했습니다. 또한 View에서 직접 상속 한 DrawOnTop이라는 또 다른 사용자 정의보기 클래스를 만들었으며 미리보기 상단에 텍스트 및 기타 항목을 그릴 때이 도구를 사용합니다. 각 뷰 클래스는 독립적으로 작동하지만 두 뷰를 모두 액티비티에로드하면 CameraPreview가 항상 지배적이며 DrawOnTop 클래스의 객체 또는 텍스트가 카메라 미리보기 상단에 표시되지 않습니다.맞춤형 SurfaceView 클래스 위에 그릴 수 없습니다.

두 개의 사용자 정의보기 클래스를 사용하기 때문에 onCreate에 setContentView (...) 호출이 포함되지 않도록 XML의 뷰 클래스를 확장하지 않아도됩니다. 대신, 각 뷰 클래스의 인스턴스를, 그리고 addContentView (...)를 사용하여 활동의 루트 뷰에 각 뷰 객체를로드, 내가 활동의 루트 뷰를 살펴했다

CameraPreview preview = new CameraPreview(this); 
addContentView(preview, new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT)); 

DrawOnTop drawontop = new DrawOnTop(this);  
addContentView(drawontop, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
drawontop.setVisibility(View.VISIBLE); 
drawontop.bringToFront(); 

즉, 그것은 밝혀 FrameLayout 형식의. 위에서 말했듯이이 방법론은 각 뷰에 대해 잘 작동합니다.

카메라 미리보기 위에 DrawOnTop 클래스를 표시하려면 bringToFront()를 사용해 보았지만 효과가 없습니다. Android 버전 4.1.1을 실행하는 삼성 Galaxy Note 2 LTE에서 앱을 테스트하고 있습니다.

누구든지 내가 뭘 잘못하고 있다고 말할 수 있습니까?

+0

사용자 지정보기를 추가 할 xml 파일을 제공 할 수 있습니까? – Triode

+0

Rajesh에게 물어봐 줘서 고마워.하지만 XML을 사용하지 않아서 onCreate 메소드에서 setContentView (...)를 호출 할 필요가 없다. 대신 활동에 뷰를로드하고 있습니다. 이제 질문을 편집하고이를 위해 사용하는 코드를 추가했습니다. 앞에서 말한 것처럼이 방법론은 각 뷰에 대해 잘 작동합니다. – Stochastically

+0

Surfaceview는 제 경험에서 약간 이상합니다. 과거에는 문제가있었습니다. 내가 노트북에있을 때 관련성이있는 정보를 찾아 낼 것입니다. – Kerry

답변

3

이 링크는 도움이 될 수 있습니다 : How to draw an overlay on a SurfaceView used by Camera on Android?

그냥 즉, FrameLayout이 같은 수준에서

FrameLayout frame = new FrameLayout(this); 
addContentView(frame, new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT)); 
CameraPreview preview = new CameraPreview(this); 
frame.addView(mPreview); 

DrawOnTop drawontop = new DrawOnTop(this);  
addContentView(drawontop, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
drawontop.setVisibility(View.VISIBLE); 
drawontop.bringToFront(); 

을 FrameLayout이로 CameraPreview보기를 넣어, 당신의 DrawOnTop보기를 가질 필요가

는 그 일을합니까 너를 위해서?

관련 문제