Переключение активности в камере.Обратный вызов PictureCallback

#android #android-activity #camera #android-camera

#Android #android-активность #камера #android-камера

Вопрос:

У меня есть камера.Функция PictureCallback, которая вызывается, когда камера делает снимок в Android, но мне интересно, как я могу получить доступ к активности, частью которой является камера. Вот мой код:

 public Camera camera = null;    

Camera.PictureCallback pictureCallbackJpeg = new Camera.PictureCallback()
{ 
    //PictureCallback(Activity a)
    //{
    //    
    //}
    // An attempt at creating a constructor...

    public void onPictureTaken(byte[] data, Camera c)
    {
        camera.startPreview();

        // would like to call activity method
    }
}

// Camera Initilisation

camera.takePicture(null, null, pictureCallbackJpeg);
  

Я хотел бы переключить действия, а также вызвать метод, который является моим основным действием здесь, но я не могу понять, как я это сделаю. Есть идеи?

Комментарии:

1. разве вы не можете передать свою основную активность в качестве параметра этому классу?

2. Я пытался, но это мне не позволило. Я новичок в Java, поэтому, возможно, я сделал это неправильно, но я попытался создать этот метод: PictureCallback(Activity a) но это не позволило мне сказать, что метод должен иметь возвращаемый тип.

3. вы уверены, что не можете этого сделать, можете опубликовать свой полный код?

Ответ №1:

Вы могли бы взять методы / функциональные возможности, которые необходимо вызывать в разных классах, и поместить их в что-то вроде AndroidUtils.java . Затем вы могли бы вызвать общий метод из класса Activity и камеры.Обратный вызов PictureCallback.

Так просто чище, и вам не нужно передавать объект другому только для вызова общего метода.