2011-08-23 8 views
1

이미지 오버레이가있는 카메라 미리보기를 표시하고 아래쪽에 버튼을 사용하여 사진을 찍으려고합니다. 나는 꽤 많이 CameraPreview에서 API를 복사하고 내 오버레이 역할을하는 XML 파일을 추가하는 데 꽤 효과가있는 addcontentview를 추가했습니다. (조경 모드에 있어야한다는 점을 제외하고 코드를 통해 내 물건을 모두 회전시키는 방법을 알아야하거나, 나에게 더 쉽게, 옆쪽 이미지를 만드십시오 :-P)내 앱에서 캡처 한 카메라 데이터를 기록하는 방법

제 문제는 제가 할 수있는 것입니다. 내 버튼을 올바르게 작동시키는 법을 찾아야합니다.

내가하고 싶은 일은 이미지를 다음 활동을위한 배경으로 사용하는 것뿐입니다. 어쨌든,이게 내가 가진거야.

public class CameraPreview extends Activity {  
    private Preview mPreview; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     requestWindowFeature(Window.FEATURE_NO_TITLE); 

     mPreview = new Preview(this); 
     setContentView(mPreview); 
     LayoutInflater inflater = getLayoutInflater(); 
     getWindow().addContentView(inflater.inflate(R.layout.overlay, null), new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, 
     ViewGroup.LayoutParams.FILL_PARENT));   
    } 
} 


// ---------------------------------------------------------------------- 

class Preview extends SurfaceView implements SurfaceHolder.Callback { 
    SurfaceHolder mHolder; 
    Camera mCamera; 

    Preview(Context context) { 
     super(context); 

     mHolder = getHolder(); 
     mHolder.addCallback(this); 
     mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);        
    } 

    public void surfaceCreated(SurfaceHolder holder) { 
     mCamera = Camera.open(); 
     try { 
      mCamera.setPreviewDisplay(holder); 
     } catch (IOException exception) { 
      mCamera.release(); 
      mCamera = null; 
     } 
    } 

    public void surfaceDestroyed(SurfaceHolder holder) { 
     mCamera.stopPreview(); 
     mCamera.release(); 
     mCamera = null; 
    } 

    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { 
     Camera.Parameters parameters = mCamera.getParameters(); 
     parameters.setPreviewSize(w, h); 
     mCamera.setParameters(parameters); 
     mCamera.startPreview(); 
    } 
} 

버튼을 어디에 넣을 지, 무엇을 입력해야하는지 등을 파악할 수 없습니다. 나는 camera.takepicture와 같은 그 무엇인가 추측하고있다. 그러나 나는 그것이 일하게 할 수 없다.

오, 참으로 나는이 지역에서 하루 반 정도를 보냈습니다. 그래서 당신이 나를 위해 그것을 단순화 할 수 있다면, 내 튀김 된 마음은 그것을 고맙게 생각할 것입니다. :)

답변

1

괜찮 았던 것처럼, 나는 신선한 마음으로 오늘 조금 찌르며 사용자가 카메라 앱을 사용하게하는 것이 훨씬 쉬울 것이라고 결정했습니다. 그래서 저는 startActivityForResult로 그 작업을 수행했습니다. 거기서 데이터로 이미지 뷰를 수정하는 것이 쉬웠습니다. 그리고 RelativeLayout을 사용하여 반환 된 미리보기에 오버레이를 놓을 것입니다.

감사합니다. 나는 아래의 질문에서 내 것을 만들었다.

How do I save data from Camera to disk using MediaStore on Android?

관련 문제