CameraInfo

public interface CameraInfo

androidx.camera.core.CameraInfo


An interface for retrieving camera information.

Applications can retrieve an instance via Camera.getCameraInfo().

Summary

Public methods

abstract LiveData<Float> getLinearZoom()

Returns a LiveData of current linearZoom which is in range [0..1].

abstract LiveData<Float> getMaxZoomRatio()

Returns a LiveData of the maximum zoom ratio.

abstract LiveData<Float> getMinZoomRatio()

Returns a LiveData of the minimum zoom ratio.

abstract int getSensorRotationDegrees()

Returns the sensor rotation in degrees, relative to the device's "natural" (default) orientation.

abstract int getSensorRotationDegrees(int relativeRotation)

Returns the sensor rotation, in degrees, relative to the given rotation value.

abstract LiveData<Integer> getTorchState()

Returns a LiveData of current TorchState.

abstract LiveData<Float> getZoomRatio()

Returns a LiveData of current zoom ratio.

abstract boolean hasFlashUnit()

Returns if flash unit is available or not.

Public methods

getLinearZoom

public abstract LiveData<Float> getLinearZoom ()

Returns a LiveData of current linearZoom which is in range [0..1]. LinearZoom 0 represents the minimum zoom while linearZoom 1.0 represents the maximum zoom.

Apps can either get immediate value via LiveData.getValue() (The value is never null, it has default value in the beginning) or they can observe it via LiveData.observe(LifecycleOwner, Observer) to update zoom UI accordingly.

Setting zoomRatio or linearZoom will both trigger the change event.

Returns
LiveData<Float> a LiveData containing current linearZoom.

getMaxZoomRatio

public abstract LiveData<Float> getMaxZoomRatio ()

Returns a LiveData of the maximum zoom ratio.

Apps can either get immediate value via LiveData.getValue() (The value is never null, it has default value in the beginning) or they can observe it via LiveData.observe(LifecycleOwner, Observer) to update zoom UI accordingly.

While the value is fixed most of the time, enabling extension could change the maximum zoom ratio.

Returns
LiveData<Float> a LiveData containing the maximum zoom ratio value.

getMinZoomRatio

public abstract LiveData<Float> getMinZoomRatio ()

Returns a LiveData of the minimum zoom ratio.

Apps can either get immediate value via LiveData.getValue() (The value is never null, it has default value in the beginning) or they can observe it via LiveData.observe(LifecycleOwner, Observer) to update zoom UI accordingly.

While the value is fixed most of the time, enabling extension could change the minimum zoom ratio value.

Returns
LiveData<Float> a LiveData containing the minimum zoom ratio value.

getSensorRotationDegrees

public abstract int getSensorRotationDegrees ()

Returns the sensor rotation in degrees, relative to the device's "natural" (default) orientation.

Returns
int The sensor rotation in degrees, relative to device's "natural" (default) orientation.

getSensorRotationDegrees

public abstract int getSensorRotationDegrees (int relativeRotation)

Returns the sensor rotation, in degrees, relative to the given rotation value.

Valid values for the relative rotation are Surface.ROTATION_0 (natural), Surface.ROTATION_90, Surface.ROTATION_180, Surface.ROTATION_270.

Parameters
relativeRotation int: The rotation relative to which the output will be calculated.

Returns
int The sensor rotation in degrees.

getTorchState

public abstract LiveData<Integer> getTorchState ()

Returns a LiveData of current TorchState.

The torch can be turned on and off via CameraControl.enableTorch(boolean) which will trigger the change event to the returned LiveData. Apps can either get immediate value via LiveData.getValue() or observe it via LiveData.observe(LifecycleOwner, Observer) to update torch UI accordingly.

If the camera doesn't have a flash unit (see hasFlashUnit()), then the torch state will be TorchState.OFF.

Returns
LiveData<Integer> a LiveData containing current torch state.

getZoomRatio

public abstract LiveData<Float> getZoomRatio ()

Returns a LiveData of current zoom ratio.

Apps can either get immediate value via LiveData.getValue() (The value is never null, it has default value in the beginning) or they can observe it via LiveData.observe(LifecycleOwner, Observer) to update zoom UI accordingly.

Setting zoomRatio or linearZoom will both trigger the change event.

Returns
LiveData<Float> a LiveData containing current zoom ratio.

hasFlashUnit

public abstract boolean hasFlashUnit ()

Returns if flash unit is available or not.

Returns
boolean