# BasicPictureInPicture

Artifact: [androidx.core:core-pip](https://developer.android.com/jetpack/androidx/releases/core) [View Source](https://cs.android.com/search?q=file:androidx/core/pip/PictureInPictureImpl.kt+class:androidx.core.pip.BasicPictureInPicture) Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/core#1.0.0-alpha04)

*** ** * ** ***


```
public class BasicPictureInPicture extends PictureInPictureDelegate
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [androidx.core.pip.PictureInPictureDelegate](https://developer.android.com/reference/androidx/core/pip/PictureInPictureDelegate) ||
|   | ↳ | [androidx.core.pip.BasicPictureInPicture](https://developer.android.com/reference/androidx/core/pip/BasicPictureInPicture) |

Known direct subclasses [VideoPlaybackPictureInPicture](https://developer.android.com/reference/androidx/core/pip/VideoPlaybackPictureInPicture)

|---|---|
| `https://developer.android.com/reference/androidx/core/pip/VideoPlaybackPictureInPicture` | Picture-in-Picture implementation optimized for Video Playback applications. |

*** ** * ** ***

Basic Picture-in-Picture implementation.

Configures PiP with a specific aspect ratio, custom actions, and controls enter behavior. Seamless resize is disabled and no sourceRectHint is used.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/core/pip/BasicPictureInPicture#BasicPictureInPicture(androidx.core.app.PictureInPictureProvider,java.util.concurrent.Executor)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/app/PictureInPictureProvider pictureInPictureProvider, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/concurrent/Executor.html executor )` |

| ### Public methods |
|---|---|
| `final void` | `https://developer.android.com/reference/androidx/core/pip/BasicPictureInPicture#commit()()` Commits the changes made through the setter methods and applies them to the current Picture-in-Picture session. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/pip/BasicPictureInPicture` | `https://developer.android.com/reference/androidx/core/pip/BasicPictureInPicture#setActions(kotlin.collections.List)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/app/RemoteAction.html> actions)` Sets the custom actions to be available in the Picture-in-Picture menu. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/pip/BasicPictureInPicture` | `https://developer.android.com/reference/androidx/core/pip/BasicPictureInPicture#setAspectRatio(android.util.Rational)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/util/Rational.html aspectRatio)` Sets the desired aspect ratio for the Picture-in-Picture window. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/pip/BasicPictureInPicture` | `https://developer.android.com/reference/androidx/core/pip/BasicPictureInPicture#setEnabled(kotlin.Boolean)(boolean enabled)` Sets whether the activity should automatically enter Picture-in-Picture mode when eligible (e.g., when swiping to home). |

| ### Protected methods |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/app/PictureInPictureParamsCompat.Builder` | `https://developer.android.com/reference/androidx/core/pip/BasicPictureInPicture#getPictureInPictureParamsBuilder()()` |

### Inherited methods

From [androidx.core.pip.PictureInPictureDelegate](https://developer.android.com/reference/androidx/core/pip/PictureInPictureDelegate) `final void` `https://developer.android.com/reference/androidx/core/pip/PictureInPictureDelegate#addOnPictureInPictureEventListener(java.util.concurrent.Executor,androidx.core.pip.PictureInPictureDelegate.OnPictureInPictureEventListener)(
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/concurrent/Executor.html executor,
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/pip/PictureInPictureDelegate.OnPictureInPictureEventListener listener
)`

Adds `https://developer.android.com/reference/androidx/core/pip/PictureInPictureDelegate.OnPictureInPictureEventListener` for events sent from system.
`final void` `https://developer.android.com/reference/androidx/core/pip/PictureInPictureDelegate#removeOnPictureInPictureEventListener(androidx.core.pip.PictureInPictureDelegate.OnPictureInPictureEventListener)(
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/pip/PictureInPictureDelegate.OnPictureInPictureEventListener listener
)`

Removes `https://developer.android.com/reference/androidx/core/pip/PictureInPictureDelegate.OnPictureInPictureEventListener` for events sent from system.
`final void` `https://developer.android.com/reference/androidx/core/pip/PictureInPictureDelegate#setPictureInPictureParams(androidx.core.app.PictureInPictureParamsCompat)(
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/app/PictureInPictureParamsCompat pictureInPictureParamsCompat
)`

Sets the `https://developer.android.com/reference/androidx/core/app/PictureInPictureParamsCompat` instance for PiP.

## Public constructors

### BasicPictureInPicture

Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/core#1.0.0-alpha04)

```
public BasicPictureInPicture(
    @NonNull PictureInPictureProvider pictureInPictureProvider,
    @NonNull Executor executor
)
```

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/app/PictureInPictureProvider pictureInPictureProvider` | `https://developer.android.com/reference/androidx/core/app/PictureInPictureProvider` instance that this delegate will call into for actual Picture-in-Picture functionalities. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/concurrent/Executor.html executor` | The executor to use for applying the Picture-in-Picture parameters. It is recommended to use a background executor to offload these framework calls from the main thread. |

## Public methods

### commit

Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/core#1.0.0-alpha04)

```
public final void commit()
```

Commits the changes made through the setter methods and applies them to the current Picture-in-Picture session.

This method builds the `https://developer.android.com/reference/androidx/core/app/PictureInPictureParamsCompat` and schedules an update using the executor provided at construction.

### setActions

Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/core#1.0.0-alpha04)

```
public final @NonNull BasicPictureInPicture setActions(@NonNull List<@NonNull RemoteAction> actions)
```

Sets the custom actions to be available in the Picture-in-Picture menu.

Callers must invoke `https://developer.android.com/reference/androidx/core/pip/BasicPictureInPicture#commit()` to apply the changes.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/app/RemoteAction.html> actions` | A list of RemoteActions. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/pip/BasicPictureInPicture` | This implementation instance for chaining. |

### setAspectRatio

Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/core#1.0.0-alpha04)

```
public final @NonNull BasicPictureInPicture setAspectRatio(@NonNull Rational aspectRatio)
```

Sets the desired aspect ratio for the Picture-in-Picture window.

Callers must invoke `https://developer.android.com/reference/androidx/core/pip/BasicPictureInPicture#commit()` to apply the changes.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/util/Rational.html aspectRatio` | The desired width/height ratio. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/pip/BasicPictureInPicture` | This implementation instance for chaining. |

### setEnabled

Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/core#1.0.0-alpha04)

```
public final @NonNull BasicPictureInPicture setEnabled(boolean enabled)
```

Sets whether the activity should automatically enter Picture-in-Picture mode when eligible (e.g., when swiping to home). This indicates the "willingness to enter PiP".

Callers must invoke `https://developer.android.com/reference/androidx/core/pip/BasicPictureInPicture#commit()` to apply the changes.

| Parameters |
|---|---|
| `boolean enabled` | True if the Activity is PiP-able, false otherwise. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/pip/BasicPictureInPicture` | This implementation instance for chaining. |

## Protected methods

### getPictureInPictureParamsBuilder

Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/core#1.0.0-alpha04)

```
protected final @NonNull PictureInPictureParamsCompat.Builder getPictureInPictureParamsBuilder()
```