Camera alternatives and similar packages
Based on the "Camera" category.
Alternatively, view Camera alternatives based on common mentions on social networks and blogs.
-
Pix (WhatsApp Style Image Picker)
Pix is a Whatsapp image picker replica. with this, you can integrate an image picker just like WhatsApp. -
LiveEdgeDetection
LiveEdgeDetection is an Android document detection library built on top of OpenCV. It scans documents from camera live mode and allows you to adjust crop using the detected 4 edges and performs perspective transformation of the cropped image. It works best with a dark background. -
MagicalCamera
A library to take picture easy, transform your data in different format and save photos in your device -
ImagePicker
Android library to choose image from gallery or camera with option to compress result image
CodeRabbit: AI Code Reviews for Developers

Do you think we are missing an alternative of Camera or a related project?
README
Camera

Use Android camera to take pictures and videos, based on camera2 api.
Features
- Auto filled
CameraView
for previewing - Support both image capture & video record
- Configurable audio/video size and aspect ratio, auto focus, tap to focus, flash control, pinch to zoom, etc.
Gradle
dependencies {
implementation 'com.github.duanhong169:camera:${latestVersion}'
...
}
Replace
${latestVersion}
with the latest version code. See releases.
Usage
- Add
CameraView
into your layout xml:
<top.defaults.camera.CameraView
android:id="@+id/preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
app:mode="video"
app:aspectRatio="4:3"
app:autoFocus="true"
app:facing="back"
app:fillSpace="false"
app:flash="auto"
app:pinchToZoom="false"
app:showFocusIndicator="true"/>
See [
top_defaults_camera_attrs.xml
](./camera/src/main/res/values/top_defaults_camera_attrs.xml) for all supported attributes.
- Create a
Photographer
with theCameraView
:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ...
CameraView preview = findViewById(R.id.preview);
photographer = PhotographerFactory.createPhotographerWithCamera2(this, preview);
// ...
}
- Implement and set
Photographer.OnEventListener
to receive events from the camera:
photographer.setOnEventListener(new SimpleOnEventListener() {
@Override
public void onDeviceConfigured() {}
@Override
public void onPreviewStarted() {}
@Override
public void onZoomChanged(float zoom) {}
@Override
public void onPreviewStopped() {}
@Override
public void onStartRecording() {}
@Override
public void onFinishRecording(String filePath) {}
@Override
public void onShotFinished(String filePath) {}
@Override
public void onError(Error error) {}
});
- Start/stop preview in
onResume()
/onPause()
:
@Override
protected void onResume() {
super.onResume();
photographer.startPreview();
}
@Override
protected void onPause() {
photographer.stopPreview();
super.onPause();
}
PhotographerHelper
is your friend:
photographerHelper = new PhotographerHelper(photographer); // init with photographer
photographerHelper.setFileDir(Commons.MEDIA_DIR); // set directory for image/video saving
photographerHelper.flip(); // flip back/front camera
photographerHelper.switchMode(); // switch between image capture/video record
See a complete usage in the app sample code.
Credits
License
See the [LICENSE](./LICENSE) file.
*Note that all licence references and agreements mentioned in the Camera README section above
are relevant to that project's source code only.