2013-03-22 4 views
16

내 안드로이드 앱에 카메라 미리보기가 있습니다. 여러분 모두 아시다시피, 안드로이드에서는 surfaceview으로 구현됩니다.카메라 안드로이드 흐림 표면보기가

사용자가 사진을 찍을 수있게 해주는 내 사진 앱에서 사용자가 아직 로그인하지 않은 경우 카메라 미리보기 (표면보기)를 흐리게하고 사용자가 로그인하면 일반 미리보기를 표시합니다 있을 것 같습니다 enter image description here

같은 뭔가를해야만 같은

흐림) 흐림없이 그러나 방법은

커플 일들이 마음에 와서 그것을 할 수 없습니다하지만 난 그것을

    ,691을 달성하는 방법을 잘 모르겠습니다
  1. 흐림 오버레이를 사용하여 서페이스 뷰 위에 놓으십시오. 그런데 어떻게 흐리게 오버레이를 만들 수 있습니까?
  2. 또 다른 방법은 윈도우의 속성을 변경하지만, 내가 그것을 서피스 뷰 SurfaceView을 할 수 없어,

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND); 
    

그래서 우리는 윈도우 오버레이에게 서피스 뷰 SurfaceView를 만들고 그 같은 플래그를 설정할 수 있습니까? 나는 생각하지 않는다 그래서

사람이 어떻게 표면보기입니다 카메라 미리보기를 흐리게하는 말해 줄 수

참고 : 나는 카메라 미리보기에서 ooutput 인 영역을 흐리게하려고, 그래서이다 정적 이미지가 흐릿하게 보이지 않는 것처럼 흐림 영역은 U 포인트가있는 전화 카메라에 따라 달라집니다

+0

이것이 내장되어 있는지 잘 모르겠습니다. 각 프레임을 처리해야 할 수도 있습니다. http://stackoverflow.com/questions/8620560/video-processing-in-android –

+0

카메라 위에 투명 이미지를 추가했을 수 있습니다. surfaceView는 당신을위한 더 쉬운 해결책이 될 것입니까? – Devrim

답변

2

컨트롤의 스크린 샷을 찍은 다음 흐림 효과를 적용한 다음 그 이미지를 원본 컨트롤 위에 표시합니다. 이것은 야후 날씨 응용 프로그램이 어떻게하는지, 그리고 어떻게하면 Google이 이와 같은 일을하는지를 보여줍니다.

렌더링 스크립트가 빠르게 블러 링합니다. 나는 또한 코드를 가지고있다. 그러나 그것은 현재 현재 당면하고 있지 않다.

이 도움이 될 수 있습니다

http://blog.neteril.org/blog/2013/08/12/blurring-images-on-android http://docs.xamarin.com/recipes/android/other_ux/drawing/blur_an_image_with_renderscript/

나는도 이렇게 안드로이드에 내장 된 방법이 있습니다,하지만 API 그래서 우리는 그것을 사용할 수 없습니다 공개하지 읽었습니다 ... 그것은 빤다.

+0

그것이 효과가 있다고 생각하는 동안 그것은 API 레벨 16에서 개인적으로 API 레벨 17에 추가 될 때만 API 레벨 17에 추가되었습니다. – Pete

1

두 번째 옵션은 이후 버전의 Android OS에서 지원이 중단 되더라도 좋은 옵션 일 수 있습니다. 나는 당신의 surfaceview의 앞쪽에 창을 가져오고, 지금은 새로운 앞쪽의 창에 blur_behind 속성을 사용한다고 생각합니다.

안드로이드 API 문서 " 이 정수는 14 희미은 더 이상 지원되지 API 수준에서 더 이상 사용되지 않았다

윈도우 플래그가 :.이 창 뒤에 모든 것을 흐리게

상수 값 :. (4) (0x00000004) "

저는 이것이 100 % 확신 할 수는 있지만 꼭 시도해 볼만한 가치가 있음을 인정해야합니다.

+0

API 레벨에서 구현 된 방법이 조금 위험하다는 것은 부끄러워서 사용하지 않는 것이 좋습니다. 14 :(. – Pete

-4

카메라 매개 변수를 변경해야합니다. 이 경우에는 Camera.Parameters.setPictureSize()입니다.

기본 워크 플로는 여기에 있습니다 :

Camera.Parameters cp = mCamera.getParameters(); // get the current params 
cp.set...(); // change something 
mCamera.setParameters(cp); // write the params back 

하는이 기능을 통해 설정 한 모든 해상도가 지원되는지 확인합니다. Camera.Parameters.getSupportedPictureSizes()을 통해 장치에서 지원되는 해상도 목록을 얻을 수 있습니다. 이 Camera 문서를 확인하십시오.

+1

당신은 실제로 질문을 읽었습니까? – Pete

+0

예 .... 나는 그것을 정확하게 읽고 그 대답을 받아 들였습니다. –

관련 문제