PictureInPictureParams.Builder

public static class PictureInPictureParams.Builder
extends Object

java.lang.Object
   ↳ android.app.PictureInPictureParams.Builder


Builder class for PictureInPictureParams objects.

Summary

Public constructors

Builder()

Default constructor

Builder(PictureInPictureParams original)

Copy constructor

Public methods

PictureInPictureParams build()
PictureInPictureParams.Builder setActions(List<RemoteAction> actions)

Sets the user actions.

PictureInPictureParams.Builder setAspectRatio(Rational aspectRatio)

Sets the aspect ratio.

PictureInPictureParams.Builder setAutoEnterEnabled(boolean autoEnterEnabled)

Sets whether the system will automatically put the activity in picture-in-picture mode without needing/waiting for the activity to call Activity#enterPictureInPictureMode(PictureInPictureParams).

PictureInPictureParams.Builder setCloseAction(RemoteAction action)

Sets a close action that should be invoked before the default close PiP action.

PictureInPictureParams.Builder setExpandedAspectRatio(Rational expandedAspectRatio)

Sets the aspect ratio for the expanded picture-in-picture mode.

PictureInPictureParams.Builder setSeamlessResizeEnabled(boolean seamlessResizeEnabled)

Sets whether the system can seamlessly resize the window while the activity is in picture-in-picture mode.

PictureInPictureParams.Builder setSourceRectHint(Rect launchBounds)

Sets the window-coordinate bounds of an activity transitioning to picture-in-picture.

PictureInPictureParams.Builder setSubtitle(CharSequence subtitle)

Sets a subtitle for the picture-in-picture window, which may be displayed by the system to give the user more detailed information about what this PIP is displaying.

PictureInPictureParams.Builder setTitle(CharSequence title)

Sets a title for the picture-in-picture window, which may be displayed by the system to give the user information about what this PIP is generally being used for.

Inherited methods

Public constructors

Builder

Added in API level 26
public Builder ()

Default constructor

Builder

Added in API level 26
public Builder (PictureInPictureParams original)

Copy constructor

Parameters
original PictureInPictureParams: PictureInPictureParams instance this builder is built upon. This value cannot be null.

Public methods

build

Added in API level 26
public PictureInPictureParams build ()

Returns
PictureInPictureParams an immutable PictureInPictureParams to be used when entering or updating the activity in picture-in-picture.

setActions

Added in API level 26
public PictureInPictureParams.Builder setActions (List<RemoteAction> actions)

Sets the user actions. If there are more than Activity#getMaxNumPictureInPictureActions() actions, then the input list will be truncated to that number.

Parameters
actions List: the new actions to show in the picture-in-picture menu.

Returns
PictureInPictureParams.Builder this builder instance.

See also:

setAspectRatio

Added in API level 26
public PictureInPictureParams.Builder setAspectRatio (Rational aspectRatio)

Sets the aspect ratio. This aspect ratio is defined as the desired width / height, and does not change upon device rotation.

Parameters
aspectRatio Rational: the new aspect ratio for the activity in picture-in-picture, must be between 2.39:1 and 1:2.39 (inclusive).

Returns
PictureInPictureParams.Builder this builder instance.

setAutoEnterEnabled

Added in API level 31
public PictureInPictureParams.Builder setAutoEnterEnabled (boolean autoEnterEnabled)

Sets whether the system will automatically put the activity in picture-in-picture mode without needing/waiting for the activity to call Activity#enterPictureInPictureMode(PictureInPictureParams). If true, Activity#onPictureInPictureRequested() will never be called. This property is false by default.

Parameters
autoEnterEnabled boolean: true if the system will automatically put the activity in picture-in-picture mode.

Returns
PictureInPictureParams.Builder this builder instance. This value cannot be null.

setCloseAction

Added in API level 33
public PictureInPictureParams.Builder setCloseAction (RemoteAction action)

Sets a close action that should be invoked before the default close PiP action. The custom action must close the activity quickly using Activity#finish(). Otherwise, the system will forcibly close the PiP as if no custom close action was provided. If the action matches one set via PictureInPictureParams.Builder#setActions(List) it may be shown in place of that custom action in the menu.

Parameters
action RemoteAction: to replace the system close action This value may be null.

Returns
PictureInPictureParams.Builder this builder instance. This value cannot be null.

See also:

setExpandedAspectRatio

Added in API level 33
public PictureInPictureParams.Builder setExpandedAspectRatio (Rational expandedAspectRatio)

Sets the aspect ratio for the expanded picture-in-picture mode. The aspect ratio is defined as the desired width / height.
The aspect ratio cannot be changed from horizontal to vertical or vertical to horizontal while the PIP is shown. Any such changes will be ignored.
Setting the expanded ratio shows the activity's support for expanded mode.
Requires the PackageManager#FEATURE_EXPANDED_PICTURE_IN_PICTURE feature which can be detected using PackageManager.hasSystemFeature(String).

Parameters
expandedAspectRatio Rational: must not be between 2.39:1 and 1:2.39 (inclusive). If null, expanded picture-in-picture mode is not supported.

Returns
PictureInPictureParams.Builder this builder instance. This value cannot be null.

setSeamlessResizeEnabled

Added in API level 31
public PictureInPictureParams.Builder setSeamlessResizeEnabled (boolean seamlessResizeEnabled)

Sets whether the system can seamlessly resize the window while the activity is in picture-in-picture mode. This should normally be the case for video content and when it's set to false, system will perform transitions to overcome the artifacts due to resize. This property is true by default for backwards compatibility.

Parameters
seamlessResizeEnabled boolean: true if the system can seamlessly resize the window while activity is in picture-in-picture mode.

Returns
PictureInPictureParams.Builder this builder instance. This value cannot be null.

setSourceRectHint

Added in API level 26
public PictureInPictureParams.Builder setSourceRectHint (Rect launchBounds)

Sets the window-coordinate bounds of an activity transitioning to picture-in-picture. The bounds is the area of an activity that will be visible in the transition to picture-in-picture mode. For the best effect, these bounds should also match the aspect ratio in the arguments. In Android 12+ these bounds are also reused to improve the exit transition from picture-in-picture mode. See Support smoother animations when exiting out of PiP mode for more details.

Parameters
launchBounds Rect: window-coordinate bounds indicating the area of the activity that will still be visible following the transition into picture-in-picture (e.g. the video view bounds in a video player)

Returns
PictureInPictureParams.Builder this builder instance.

setSubtitle

Added in API level 33
public PictureInPictureParams.Builder setSubtitle (CharSequence subtitle)

Sets a subtitle for the picture-in-picture window, which may be displayed by the system to give the user more detailed information about what this PIP is displaying.
Setting a title via PictureInPictureParams.Builder#setTitle(CharSequence) should be prioritized.

Parameters
subtitle CharSequence: Details about the PIP content. This value may be null.

Returns
PictureInPictureParams.Builder this builder instance This value cannot be null.

setTitle

Added in API level 33
public PictureInPictureParams.Builder setTitle (CharSequence title)

Sets a title for the picture-in-picture window, which may be displayed by the system to give the user information about what this PIP is generally being used for.

Parameters
title CharSequence: General information about the PIP content This value may be null.

Returns
PictureInPictureParams.Builder this builder instance. This value cannot be null.