이미지 오버레이가있는 카메라 미리보기를 표시하고 아래쪽에 버튼을 사용하여 사진을 찍으려고합니다. 나는 꽤 많이 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와 같은 그 무엇인가 추측하고있다. 그러나 나는 그것이 일하게 할 수 없다.
오, 참으로 나는이 지역에서 하루 반 정도를 보냈습니다. 그래서 당신이 나를 위해 그것을 단순화 할 수 있다면, 내 튀김 된 마음은 그것을 고맙게 생각할 것입니다. :)