CameraView
listen to lots of different gestures inside its bounds. You have the chance to map
these gestures to particular actions or camera controls, using the mapGesture()
method.
This lets you emulate typical behaviors in a single line:
cameraView.mapGesture(Gesture.PINCH, GestureAction.ZOOM); // Pinch to zoom!
cameraView.mapGesture(Gesture.TAP, GestureAction.AUTO_FOCUS); // Tap to focus!
cameraView.mapGesture(Gesture.LONG_TAP, GestureAction.TAKE_PICTURE); // Long tap to shoot!
Simple as that. There are two things to be noted:
CameraOptions
to know what’s legit and what’s not.Gesture | Description | Can be mapped to |
---|---|---|
PINCH |
Pinch gesture, typically assigned to the zoom control. | ZOOM EXPOSURE_CORRECTION FILTER_CONTROL_1 FILTER_CONTROL_2 NONE |
TAP |
Single tap gesture, typically assigned to the focus control. | AUTO_FOCUS TAKE_PICTURE TAKE_PICTURE_SNAPSHOT NONE |
LONG_TAP |
Long tap gesture. | AUTO_FOCUS TAKE_PICTURE TAKE_PICTURE_SNAPSHOT NONE |
SCROLL_HORIZONTAL |
Horizontal movement gesture. | ZOOM EXPOSURE_CORRECTION FILTER_CONTROL_1 FILTER_CONTROL_2 NONE |
SCROLL_VERTICAL |
Vertical movement gesture. | ZOOM EXPOSURE_CORRECTION FILTER_CONTROL_1 FILTER_CONTROL_2 NONE |
Looking at this from the other side:
Gesture action | Description | Can be mapped to |
---|---|---|
NONE |
Disables this gesture. | TAP LONG_TAP PINCH SCROLL_HORIZONTAL SCROLL_VERTICAL |
AUTO_FOCUS |
Launches a touch metering operation on the finger position. | TAP LONG_TAP |
TAKE_PICTURE |
Takes a picture using takePicture. | TAP LONG_TAP |
TAKE_PICTURE_SNAPSHOT |
Takes a picture using takePictureSnapshot. | TAP LONG_TAP |
ZOOM |
Zooms in or out. | PINCH SCROLL_HORIZONTAL SCROLL_VERTICAL |
EXPOSURE_CORRECTION |
Controls the exposure correction. | PINCH SCROLL_HORIZONTAL SCROLL_VERTICAL |
FILTER_CONTROL_1 |
Controls the first parameter (if any) of a real-time filter. | PINCH SCROLL_HORIZONTAL SCROLL_VERTICAL |
FILTER_CONTROL_2 |
Controls the second parameter (if any) of a real-time filter. | PINCH SCROLL_HORIZONTAL SCROLL_VERTICAL |
<com.otaliastudios.cameraview.CameraView
app:cameraGesturePinch="zoom|exposureCorrection|filterControl1|filterControl2|none"
app:cameraGestureTap="autoFocus|takePicture|takePictureSnapshot|none"
app:cameraGestureLongTap="autoFocus|takePicture|takePictureSnapshot|none"
app:cameraGestureScrollHorizontal="zoom|exposureCorrection|filterControl1|filterControl2|none"
app:cameraGestureScrollVertical="zoom|exposureCorrection|filterControl1|filterControl2|none"/>
Method | Description |
---|---|
mapGesture(Gesture, GestureAction) |
Maps a certain gesture to a certain action. No-op if the action is not supported. |
getGestureAction(Gesture) |
Returns the action currently mapped to the given gesture. |
clearGesture(Gesture) |
Clears any action mapped to the given gesture. |