public final class PreviewHandler
extends java.lang.Object
TextureView
and for allowing the user to optionally specify
a custom preview request and callback. It should be created once and passed to
Camera3.startCaptureSession(String, PreviewHandler, List)
when the capture
session is started.Constructor and Description |
---|
PreviewHandler(android.graphics.SurfaceTexture previewSurface,
android.util.Size preferredSize) |
PreviewHandler(android.graphics.SurfaceTexture previewSurface,
android.util.Size preferredSize,
CaptureRequestConfiguration requestConfig) |
PreviewHandler(android.graphics.SurfaceTexture previewSurface,
android.util.Size preferredSize,
CaptureRequestConfiguration requestConfig,
Camera3.PreviewSizeCallback previewSizeSelected)
An alternative constructor that allows you to provide a SurfaceTexture instead of a
TextureView.
|
PreviewHandler(android.view.TextureView previewTextureView) |
PreviewHandler(android.view.TextureView previewTextureView,
android.util.Size preferredSize) |
PreviewHandler(android.view.TextureView previewTextureView,
android.util.Size preferredSize,
CaptureRequestConfiguration requestConfig) |
PreviewHandler(android.view.TextureView previewTextureView,
android.util.Size preferredSize,
CaptureRequestConfiguration requestConfig,
Camera3.PreviewSizeCallback previewSizeSelected) |
Modifier and Type | Method and Description |
---|---|
android.util.Size |
getPreferredSize() |
android.graphics.SurfaceTexture |
getSurfaceTexture() |
void |
updateRequestConfig(CaptureRequestConfiguration newConfig)
Sets the preview config to the new value.
|
public PreviewHandler(@NonNull android.graphics.SurfaceTexture previewSurface, @NonNull android.util.Size preferredSize)
public PreviewHandler(@NonNull android.graphics.SurfaceTexture previewSurface, @NonNull android.util.Size preferredSize, @Nullable CaptureRequestConfiguration requestConfig)
public PreviewHandler(@NonNull android.graphics.SurfaceTexture previewSurface, @NonNull android.util.Size preferredSize, @Nullable CaptureRequestConfiguration requestConfig, @Nullable Camera3.PreviewSizeCallback previewSizeSelected)
previewSurface
- the surface on which to project the previewpreferredSize
- the desired preview size. (required) see PreviewHandler(TextureView, Size, CaptureRequestConfiguration,
Camera3.PreviewSizeCallback)
requestConfig
- see PreviewHandler(
TextureView, Size, CaptureRequestConfiguration, Camera3.PreviewSizeCallback)
previewSizeSelected
- see PreviewHandler(
TextureView, Size, CaptureRequestConfiguration, Camera3.PreviewSizeCallback)
PreviewHandler(TextureView, Size, CaptureRequestConfiguration, Camera3.PreviewSizeCallback)
public PreviewHandler(@NonNull android.view.TextureView previewTextureView)
public PreviewHandler(@NonNull android.view.TextureView previewTextureView, @Nullable android.util.Size preferredSize)
public PreviewHandler(@NonNull android.view.TextureView previewTextureView, @Nullable android.util.Size preferredSize, @Nullable CaptureRequestConfiguration requestConfig)
public PreviewHandler(@NonNull android.view.TextureView previewTextureView, @Nullable android.util.Size preferredSize, @Nullable CaptureRequestConfiguration requestConfig, @Nullable Camera3.PreviewSizeCallback previewSizeSelected)
previewTextureView
- the texture to display the preview inpreferredSize
- (optional) the preferred resolution for the preview. There is no grantee
that this size will be used. Camera3 take this preference into account
and pick a size form the list of available camera sizes. See Camera3.getAvailableImageSizes(String, int)
. If null
, the size
of previewTextureView
will be used.requestConfig
- an optional custom configuration for the preview request. This allows
you to specify custom attributes for the request like focus and
exposure. Defaults are given by CameraDevice.TEMPLATE_PREVIEW
.
If null
, the defaults are not altered. You should not specify a
target for the builder or build it. See
CaptureRequestConfiguration
for more information.previewSizeSelected
- an optional callback if you want to be notified when an actual
preview size is chosen (based on preferredSize
or the
size of previewTextureView
). This can be useful if you
want to adjust your UI (especially aspect ratio) accordingly.
Hint: if you are using AutoFitTextureView
, pass the
selected size to
AutoFitTextureView.setAspectRatio(int, int)
here.public void updateRequestConfig(CaptureRequestConfiguration newConfig)
newConfig
- the new preview configuration to use@Contract(pure=true) @NonNull public android.util.Size getPreferredSize()
@Contract(pure=true) @NonNull public android.graphics.SurfaceTexture getSurfaceTexture()