Пытаюсь реализовать замечательную библиотеку cwac-camera. Я не могу понять, как реализовать обратный вызов для изображения и как установить путь для изображения.
Это мой открытый класс CustomCameraFragment. CustomCameraFragment extends CameraFragment { private static final String KEY_USE_FFC = "com.commonsware.cwac.camera.demo.USE_FFC";
public static CustomCameraFragment newInstance(boolean useFFC) {
CustomCameraFragment f = new CustomCameraFragment();
Bundle args = new Bundle();
args.putBoolean(KEY_USE_FFC, useFFC);
f.setArguments(args);
return (f);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SimpleCameraHost.Builder builder =
new SimpleCameraHost.Builder(new DemoCameraHost(getActivity()));
builder.useFullBleedPreview(true);
setHost(builder.build());
//setHost(builder.useFullBleedPreview(true).build());
}
public class DemoCameraHost extends SimpleCameraHost {
public DemoCameraHost(Context _ctxt) {
super(_ctxt);
}
@Override
public boolean useFrontFacingCamera() {
if (getArguments() == null) {
return (false);
}
return (getArguments().getBoolean(KEY_USE_FFC));
}
@Override
public boolean useSingleShotMode() {
return true;
}
@Override
public void onCameraFail(CameraHost.FailureReason reason) {
super.onCameraFail(reason);
Toast.makeText(getActivity(),
"Sorry, but you cannot use the camera now!",
Toast.LENGTH_LONG).show();
}
@Override
public void saveImage(PictureTransaction xact, Bitmap bitmap) {
super.saveImage(xact, bitmap);
}
}
}
Я использую его в макете кадра в другом фрагменте, но не могу понять правильную реализацию обратного вызова.
Фрагмент, где я использую CustomCameraFragment: у меня есть кнопка, чтобы сделать снимок: @OnClick(R.id.btnTakePicture) public void takePicture(View view) {
try {
CustomCameraFragment.DemoCameraHost demoCameraHost = customCameraFragment.demoCameraHost;
PictureTransaction pictureTransaction = new PictureTransaction(demoCameraHost);
pictureTransaction.needBitmap(true);
customCameraFragment.takePicture(pictureTransaction);
} catch (Exception e) {
e.printStackTrace();
}
showCameraPreview(false);
}
Но в этом фрагменте мне нужно: - Обратный вызов, чтобы узнать, когда был сделан снимок - Когда срабатывает обратный вызов, мне нужно отобразить растровое изображение вместо предварительного просмотра - Мне нужно установить путь и имя файла, где сохранить изображение
Эти 3 вещи мне непонятны.