Stay organized with collections
Save and categorize content based on your preferences.
Builder
class Builder
Builder class for ImageWriter objects.
Summary
| Public constructors |
|
Constructs a new builder for ImageWriter.
|
Public constructors
Builder
Builder(surface: Surface)
Constructs a new builder for ImageWriter.
| Parameters |
surface |
Surface: The destination Surface this writer produces Image data into. This value cannot be null. |
| Exceptions |
java.lang.IllegalArgumentException |
if the surface is already abandoned. |
Public methods
build
fun build(): ImageWriter
Builds a new ImageWriter object.
| Return |
ImageWriter |
The new ImageWriter object. This value cannot be null. |
setDataSpace
fun setDataSpace(dataSpace: Int): ImageWriter.Builder
Set the dataspace of this ImageWriter. The default value is DataSpace.DATASPACE_UNKNOWN.
| Parameters |
dataSpace |
Int: The dataspace of the image that this writer will produce. Value is either 0 or a combination of android.hardware.DataSpace#DATASPACE_DEPTH, android.hardware.DataSpace#DATASPACE_DYNAMIC_DEPTH, android.hardware.DataSpace#DATASPACE_HEIF, android.hardware.DataSpace#DATASPACE_HEIF_ULTRAHDR, android.hardware.DataSpace#DATASPACE_JPEG_R, android.hardware.DataSpace#DATASPACE_UNKNOWN, android.hardware.DataSpace#DATASPACE_SCRGB_LINEAR, android.hardware.DataSpace#DATASPACE_SRGB, android.hardware.DataSpace#DATASPACE_SCRGB, android.hardware.DataSpace#DATASPACE_DISPLAY_P3, android.hardware.DataSpace#DATASPACE_BT2020_HLG, android.hardware.DataSpace#DATASPACE_BT2020_PQ, android.hardware.DataSpace#DATASPACE_ADOBE_RGB, android.hardware.DataSpace#DATASPACE_JFIF, android.hardware.DataSpace#DATASPACE_BT601_625, android.hardware.DataSpace#DATASPACE_BT601_525, android.hardware.DataSpace#DATASPACE_BT2020, android.hardware.DataSpace#DATASPACE_BT709, android.hardware.DataSpace#DATASPACE_DCI_P3, android.hardware.DataSpace#DATASPACE_SRGB_LINEAR, and android.hardware.DataSpace.DATASPACE_DISPLAY_BT2020 |
| Return |
ImageWriter.Builder |
the builder instance with customized dataspace value. This value cannot be null. |
fun setHardwareBufferFormat(hardwareBufferFormat: Int): ImageWriter.Builder
Set the hardwareBuffer format of this ImageWriter. The default value is HardwareBuffer.RGBA_8888.
This function works together with setDataSpace for an ImageWriter instance. Setting at least one of these two replaces setImageFormat function.
| Parameters |
hardwareBufferFormat |
Int: The HardwareBuffer format of the image that this writer will produce. Value is android.hardware.HardwareBuffer#RGBA_8888, android.hardware.HardwareBuffer#RGBA_FP16, android.hardware.HardwareBuffer#RGBA_1010102, android.hardware.HardwareBuffer#RGBX_8888, android.hardware.HardwareBuffer#RGB_888, android.hardware.HardwareBuffer#RGB_565, android.hardware.HardwareBuffer#BLOB, android.hardware.HardwareBuffer#YCBCR_420_888, android.hardware.HardwareBuffer#D_16, android.hardware.HardwareBuffer#D_24, android.hardware.HardwareBuffer#DS_24UI8, android.hardware.HardwareBuffer#D_FP32, android.hardware.HardwareBuffer#DS_FP32UI8, android.hardware.HardwareBuffer#S_UI8, android.hardware.HardwareBuffer#YCBCR_P010, android.hardware.HardwareBuffer#YCBCR_P210, android.hardware.HardwareBuffer#R_8, android.hardware.HardwareBuffer#R_16, android.hardware.HardwareBuffer#RG_1616, android.hardware.HardwareBuffer#RGBA_10101010, android.hardware.HardwareBuffer.R_12, android.hardware.HardwareBuffer.R_14, android.hardware.HardwareBuffer.RG_1212, android.hardware.HardwareBuffer.RG_1414, android.hardware.HardwareBuffer.RGBA_12121212, android.hardware.HardwareBuffer.RGBA_14141414, android.hardware.HardwareBuffer.BGRA_1010102, or android.hardware.HardwareBuffer.BGRX_1010102 |
| Return |
ImageWriter.Builder |
the Builder instance with customized buffer format. This value cannot be null. |
fun setImageFormat(imageFormat: Int): ImageWriter.Builder
Set the image format of this ImageWriter. Default format depends on the Surface provided.
| Parameters |
imageFormat |
Int: The format of the ImageWriter. It can be any valid specified by ImageFormat or PixelFormat. Value is android.graphics.ImageFormat#UNKNOWN, android.graphics.PixelFormat#RGBA_8888, android.graphics.PixelFormat#RGBX_8888, android.graphics.PixelFormat#RGB_888, android.graphics.ImageFormat#RGB_565, android.graphics.ImageFormat#YV12, android.graphics.ImageFormat#Y8, android.graphics.ImageFormat.Y16, android.graphics.ImageFormat#YCBCR_P010, android.graphics.ImageFormat#YCBCR_P210, android.graphics.ImageFormat#NV16, android.graphics.ImageFormat#NV21, android.graphics.ImageFormat#YUY2, android.graphics.ImageFormat#JPEG, android.graphics.ImageFormat#DEPTH_JPEG, android.graphics.ImageFormat#YUV_420_888, android.graphics.ImageFormat#YUV_422_888, android.graphics.ImageFormat#YUV_444_888, android.graphics.ImageFormat#FLEX_RGB_888, android.graphics.ImageFormat#FLEX_RGBA_8888, android.graphics.ImageFormat#RAW_SENSOR, android.graphics.ImageFormat#RAW_PRIVATE, android.graphics.ImageFormat#RAW10, android.graphics.ImageFormat#RAW12, android.graphics.ImageFormat#DEPTH16, android.graphics.ImageFormat#DEPTH_POINT_CLOUD, android.graphics.ImageFormat.RAW_DEPTH, android.graphics.ImageFormat.RAW_DEPTH10, android.graphics.ImageFormat#PRIVATE, android.graphics.ImageFormat#HEIC, android.graphics.ImageFormat#HEIC_ULTRAHDR, or android.graphics.ImageFormat#JPEG_R |
| Return |
ImageWriter.Builder |
the Builder instance with customized image format. This value cannot be null. |
| Exceptions |
java.lang.IllegalArgumentException |
if imageFormat is invalid. |
setMaxImages
fun setMaxImages(maxImages: Int): ImageWriter.Builder
Set the maximum number of images. Default value is 1.
| Parameters |
maxImages |
Int: The maximum number of Images the user will want to access simultaneously for producing Image data. Value is 1 or greater |
| Return |
ImageWriter.Builder |
the Builder instance with customized usage value. This value cannot be null. |
setUsage
fun setUsage(usage: Long): ImageWriter.Builder
Set the usage flag of this ImageWriter.
If this function is not called, usage bit will be set to HardwareBuffer.USAGE_CPU_WRITE_OFTEN if the image format is not PRIVATE.
| Parameters |
usage |
Long: The intended usage of the images produced by this ImageWriter. Value is either 0 or a combination of android.hardware.HardwareBuffer#USAGE_CPU_READ_RARELY, android.hardware.HardwareBuffer#USAGE_CPU_READ_OFTEN, android.hardware.HardwareBuffer#USAGE_CPU_WRITE_RARELY, android.hardware.HardwareBuffer#USAGE_CPU_WRITE_OFTEN, android.hardware.HardwareBuffer#USAGE_GPU_SAMPLED_IMAGE, android.hardware.HardwareBuffer#USAGE_GPU_COLOR_OUTPUT, android.hardware.HardwareBuffer#USAGE_COMPOSER_OVERLAY, android.hardware.HardwareBuffer#USAGE_PROTECTED_CONTENT, android.hardware.HardwareBuffer#USAGE_VIDEO_ENCODE, android.hardware.HardwareBuffer#USAGE_GPU_DATA_BUFFER, android.hardware.HardwareBuffer#USAGE_SENSOR_DIRECT_DATA, android.hardware.HardwareBuffer#USAGE_GPU_CUBE_MAP, android.hardware.HardwareBuffer#USAGE_GPU_MIPMAP_COMPLETE, and android.hardware.HardwareBuffer#USAGE_FRONT_BUFFER |
| Return |
ImageWriter.Builder |
the Builder instance with customized usage flag. This value cannot be null. |
setWidthAndHeight
fun setWidthAndHeight(
width: Int,
height: Int
): ImageWriter.Builder
Set the width and height of images. Default size is dependent on the Surface that is provided by the downstream end-point.
| Parameters |
width |
Int: The width in pixels that will be passed to the producer. Value is 1 or greater |
height |
Int: The height in pixels that will be passed to the producer. Value is 1 or greater |
| Return |
ImageWriter.Builder |
the Builder instance with customized width and height. This value cannot be null. |
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-10-15 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-10-15 UTC."],[],[]]