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.
CameraView/docs/_docs/more-features.md

107 lines
3.1 KiB

---
layout: page
title: "More features"
description: "Undocumented features & more"
Metering APIs (#580) * Add cameraPictureMetering and cameraPictureSnapshotMetering * Adapt Meter and metering package to picture use * Simplify Full2PictureRecorder, we'll use metering package instead * Add doMetering parameter * Implement cameraPictureMetering and cameraPictureSnapshotMetering in engine * Add options in demo app * Add better logs * Add Snapshot2PictureRecorder * Capture the correct frame based on timestamp * Lock AE and AWB. Account for captureBuilder changes * Fix runtime flash changes bug * Small changes * Flash support for metered snapshots * Remove AE and AWB locks * Lock AE/AWB/AF inside the snapshot recorder * Small changes * Fix AutoExposure metering * Create Locker and locking.* parameters * Implement Locker in Camera2Engine * Implement reset delay in Camera2Engine instead of Meter * Simplify Snapshot2PictureRecorder * Fix success value * Unlock inside Camera2Engine * Do not lock for normal gestures * Simplify logic * Improve locking/AutoFocus * Fix TORCH bug * Small changes to locking and metering * Remove AF and AWB for testing * Create action package * Create OneShotAction * Create LogAction * Revisit Full2VideoRecorder using actions * Revisit Full2PictureRecorder using actions * Enable missing functionality in Snapshot2PictureRecorder * Move Snapshot2PictureRecorder using actions, rewrite lock package * Add TimeoutAction * Add comments to the action package * Add meter package * Remove old metering package * Fix various bugs * Add action.abort() * Abort old MeterAction when running new ones * Fix various bugs * Add doc empty page * Add documentation * Fix tests
5 years ago
order: 16
6 years ago
disqus: 1
---
### Extra controls
```xml
<com.otaliastudios.cameraview.CameraView
app:cameraPlaySounds="true|false"
app:cameraGrid="off|draw3x3|draw4x4|drawPhi"
app:cameraGridColor="@color/black"
app:cameraAutoFocusResetDelay="0"
app:cameraUseDeviceOrientation="true"/>
```
##### cameraPlaySounds
Controls whether we should play platform-provided sounds during certain events
(shutter click, focus completed). Please note that:
- on API < 16, this flag is always set to `false`
- the Camera1 engine will always play shutter sounds regardless of this flag
Defaults to true.
```java
cameraView.setPlaySounds(true);
cameraView.setPlaySounds(false);
```
##### cameraGrid
Lets you draw grids over the camera preview. Supported values are `off`, `draw3x3` and `draw4x4`
for regular grids, and `drawPhi` for a grid based on the golden ratio constant, often used in photography.
Defaults to `OFF`.
```java
cameraView.setGrid(Grid.OFF);
cameraView.setGrid(Grid.DRAW_3X3);
cameraView.setGrid(Grid.DRAW_4X4);
cameraView.setGrid(Grid.DRAW_PHI);
```
##### cameraGridColor
Lets you choose the color for grid lines.
Defaults to a shade of grey.
```java
cameraView.setGridColor(Color.WHITE);
cameraView.setGridColor(Color.BLACK);
```
##### cameraUseDeviceOrientation
Controls whether we should consider the device orientation for picture and video outputs.
This defaults to true, but can be set to false for specific usages, where you don't want the
output to be rotated based on the device rotation at the moment of capturing.
Defaults to true.
```java
cameraView.setUseDeviceOrientation(true); // rotate media
cameraView.setUseDeviceOrientation(false); // don't
```
### UI Orientation
Within a Camera app, it's common to rotate buttons and other UI elements as the device is tilted around.
We offer a handy callback giving you the right rotation that should be applied to UI elements for them
to be consistent with what the user is seeing:
```java
cameraView.addCameraListener(new CameraListener() {
@Override
public void onOrientationChanged(int orientation) {
// orientation is the counter-clockwise rotation that a View should have
// based on current device tilting and native activity orientation.
}
});
```
### Location APIs
You can plug in location tags into picture EXIF (for JPEGs) and video metadata by simply using `setLocation`.
The location can be obtained from any location provider after getting appropriate permissions.
This is not guaranteed to be appended into snapshots.
|Method|Description|
|------|-----------|
|`setLocation(Location)`|Sets location data to be appended to picture/video metadata.|
|`setLocation(double, double)`|Sets latitude and longitude to be appended to picture/video metadata.|
|`getLocation()`|Retrieves location data previously applied with setLocation().|
### Undocumented features
Some features and APIs were not documented in this document, including:
- `CameraUtils` utilities
- `CameraOptions` options
For informations, please take a look at the javadocs or the source code.