|
6 years ago | |
---|---|---|
.github | 6 years ago | |
cameraview | 6 years ago | |
demo | 6 years ago | |
docs | 6 years ago | |
gradle/wrapper | 6 years ago | |
.gitignore | 9 years ago | |
.travis.yml | 6 years ago | |
LICENSE | 8 years ago | |
README.md | 6 years ago | |
build.gradle | 6 years ago | |
codecov.yml | 7 years ago | |
gradle.properties | 7 years ago | |
gradlew | 9 years ago | |
gradlew.bat | 9 years ago | |
settings.gradle | 8 years ago |
README.md
⠀
Post-processing videos or want to reduce video size before uploading? Take a look at our Transcoder.
Like the project, make profit from it, or simply want to thank back? Please consider donating.
CameraView
CameraView is a well documented, high-level library that makes capturing pictures and videos easy, addressing most of the common issues and needs, and still leaving you with flexibility where needed.
api 'com.otaliastudios:cameraview:2.1.0'
- Fast & reliable
- Gestures support [docs]
- Real-time filters [docs]
- Camera1 or Camera2 powered engine [docs]
- Frame processing support [docs]
- Watermarks & animated overlays [docs]
- OpenGL powered preview [docs]
- Take high-quality content with
takePicture
andtakeVideo
[docs] - Take super-fast snapshots with
takePictureSnapshot
andtakeVideoSnapshot
[docs] - Smart sizing: create a
CameraView
of any size [docs] - Control HDR, flash, zoom, white balance, exposure, location, grid drawing & more [docs]
- Lightweight
- Works down to API level 15
- Well tested
⠀
⠀
Support
If you like the project, make profit from it, or simply want to thank back, please consider donating now! You can either make a one time donation or become a sponsor, in which case your company logo will immediately show up below.
CameraView is trusted and supported by ShareChat, a social media app with over 14 million daily active users.
Feel free to contact me for support, consulting or any other business-related question.
- Thanks to all our backers! Become a backer.
- Thanks to all our sponsors! Become a sponsor and have your logo here.
Setup
Please read the official website for setup instructions and documentation. You might also be interested in our changelog or in the v1 migration guide. Using CameraView is extremely simple:
<com.otaliastudios.cameraview.CameraView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:cameraPictureSizeMinWidth="@integer/picture_min_width"
app:cameraPictureSizeMinHeight="@integer/picture_min_height"
app:cameraPictureSizeMaxWidth="@integer/picture_max_width"
app:cameraPictureSizeMaxHeight="@integer/picture_max_height"
app:cameraPictureSizeMinArea="@integer/picture_min_area"
app:cameraPictureSizeMaxArea="@integer/picture_max_area"
app:cameraPictureSizeSmallest="false|true"
app:cameraPictureSizeBiggest="false|true"
app:cameraPictureSizeAspectRatio="@string/video_ratio"
app:cameraVideoSizeMinWidth="@integer/video_min_width"
app:cameraVideoSizeMinHeight="@integer/video_min_height"
app:cameraVideoSizeMaxWidth="@integer/video_max_width"
app:cameraVideoSizeMaxHeight="@integer/video_max_height"
app:cameraVideoSizeMinArea="@integer/video_min_area"
app:cameraVideoSizeMaxArea="@integer/video_max_area"
app:cameraVideoSizeSmallest="false|true"
app:cameraVideoSizeBiggest="false|true"
app:cameraVideoSizeAspectRatio="@string/video_ratio"
app:cameraSnapshotMaxWidth="@integer/snapshot_max_width"
app:cameraSnapshotMaxHeight="@integer/snapshot_max_height"
app:cameraVideoBitRate="@integer/video_bit_rate"
app:cameraAudioBitRate="@integer/audio_bit_rate"
app:cameraGestureTap="none|autoFocus|takePicture"
app:cameraGestureLongTap="none|autoFocus|takePicture"
app:cameraGesturePinch="none|zoom|exposureCorrection|filterControl1|filterControl2"
app:cameraGestureScrollHorizontal="none|zoom|exposureCorrection|filterControl1|filterControl2"
app:cameraGestureScrollVertical="none|zoom|exposureCorrection|filterControl1|filterControl2"
app:cameraEngine="camera1|camera2"
app:cameraPreview="glSurface|surface|texture"
app:cameraFacing="back|front"
app:cameraHdr="on|off"
app:cameraFlash="on|auto|torch|off"
app:cameraWhiteBalance="auto|cloudy|daylight|fluorescent|incandescent"
app:cameraMode="picture|video"
app:cameraAudio="on|off|mono|stereo"
app:cameraGrid="draw3x3|draw4x4|drawPhi|off"
app:cameraGridColor="@color/grid_color"
app:cameraPlaySounds="true|false"
app:cameraVideoMaxSize="@integer/video_max_size"
app:cameraVideoMaxDuration="@integer/video_max_duration"
app:cameraVideoCodec="deviceDefault|h264|h263"
app:cameraAutoFocusResetDelay="@integer/autofocus_delay"
app:cameraAutoFocusMarker="@string/cameraview_default_autofocus_marker"
app:cameraUseDeviceOrientation="true|false"
app:cameraFilter="@string/real_time_filter"
app:cameraExperimental="false|true">
<!-- Watermark! -->
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:src="@drawable/watermark"
app:layout_drawOnPreview="true|false"
app:layout_drawOnPictureSnapshot="true|false"
app:layout_drawOnVideoSnapshot="true|false"/>
</com.otaliastudios.cameraview.CameraView>