Как записать данные камеры, полученные из моего приложения - PullRequest
1 голос
/ 23 августа 2011

Я пытаюсь отобразить предварительный просмотр камеры с наложением изображения, и внизу есть кнопка, чтобы сделать снимок. Я в значительной степени скопировал API из CameraPreview и добавил addcontentview, который, кажется, работает очень хорошо для добавления файла XML, который действует как мой оверлей. (За исключением того, что это должно быть в ландшафтном режиме, поэтому мне нужно выяснить, как вращать все мои вещи с помощью кода или, проще для меня, просто делать боковые изображения :-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 Ответ

1 голос
/ 23 августа 2011

Хорошо, сегодня я немного покопался со свежим взглядом и решил, что было бы намного проще, если бы пользователь просто использовал свое приложение камеры.Таким образом, я сделал это с помощью startActivityForResult, и с этого момента было легко изменить мое представление изображений с данными, и я просто собираюсь наложить наложенное изображение на возвращенный предварительный просмотр, используя RelativeLayout.

Спасибо, если вы работали над этим.Я вытащил из вопроса ниже, чтобы сделать мой.

Как сохранить данные с камеры на диск с помощью MediaStore на Android?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...