You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.4 KiB
3.4 KiB
layout | title | description | order | disqus |
---|---|---|---|---|
page | Gestures | Gestures control | 5 | 1 |
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:
- Not every mapping is valid. For example, you can't control zoom with long taps, or start focusing by pinching.
- Some actions might not be supported by the sensor. Check out
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 |
Gesture Actions
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 |
XML Attributes
<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"/>
Related APIs
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. |