# BitmapLoader

Artifact: [androidx.media3:media3-common](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/common/util/BitmapLoader.java+class:androidx.media3.common.util.BitmapLoader)

*** ** * ** ***

<br />

```
@UnstableApi
interface BitmapLoader
```

<br />

Known direct subclasses [BitmapLoader](https://developer.android.com/reference/kotlin/androidx/media3/session/BitmapLoader), [CacheBitmapLoader](https://developer.android.com/reference/kotlin/androidx/media3/session/CacheBitmapLoader), [DataSourceBitmapLoader](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSourceBitmapLoader), [SimpleBitmapLoader](https://developer.android.com/reference/kotlin/androidx/media3/session/SimpleBitmapLoader), [SizeLimitedBitmapLoader](https://developer.android.com/reference/kotlin/androidx/media3/session/SizeLimitedBitmapLoader)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/session/BitmapLoader` | **This interface is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/common/util/BitmapLoader` instead. <br /> |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/CacheBitmapLoader` | A `https://developer.android.com/reference/kotlin/androidx/media3/common/util/BitmapLoader` that caches the result of the last `https://developer.android.com/reference/kotlin/androidx/media3/session/CacheBitmapLoader#decodeBitmap(byte[])`, `https://developer.android.com/reference/kotlin/androidx/media3/session/CacheBitmapLoader#loadBitmap(android.net.Uri)` or `https://developer.android.com/reference/kotlin/androidx/media3/session/CacheBitmapLoader#loadBitmapFromMetadata(androidx.media3.common.MediaMetadata)` request. |
| `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSourceBitmapLoader` | A `https://developer.android.com/reference/kotlin/androidx/media3/common/util/BitmapLoader` implementation that uses a `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource` to support fetching images from URIs and `https://developer.android.com/reference/android/graphics/BitmapFactory.html` to load them into `https://developer.android.com/reference/android/graphics/Bitmap.html`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/SimpleBitmapLoader` | **This class is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSourceBitmapLoader` instead. <br /> |
| `https://developer.android.com/reference/kotlin/androidx/media3/session/SizeLimitedBitmapLoader` | A `https://developer.android.com/reference/kotlin/androidx/media3/common/util/BitmapLoader` that limits the size of bitmaps loaded by `https://developer.android.com/reference/kotlin/androidx/media3/session/SizeLimitedBitmapLoader#decodeBitmap(byte[])` or `https://developer.android.com/reference/kotlin/androidx/media3/session/SizeLimitedBitmapLoader#loadBitmap(android.net.Uri)` request. |

*** ** * ** ***

Loads images.

## Summary

| ### Public functions |
|---|---|
| `https://guava.dev/releases/snapshot-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html<https://developer.android.com/reference/android/graphics/Bitmap.html!>!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/util/BitmapLoader#decodeBitmap(byte[])(data: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>!)` Decodes an image from compressed binary data. |
| `https://guava.dev/releases/snapshot-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html<https://developer.android.com/reference/android/graphics/Bitmap.html!>!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/util/BitmapLoader#loadBitmap(android.net.Uri)(uri: https://developer.android.com/reference/android/net/Uri.html!)` Loads an image from `uri`. |
| `https://guava.dev/releases/snapshot-android/api/docs/com/google/common/util/concurrent/ListenableFuture.html<https://developer.android.com/reference/android/graphics/Bitmap.html!>?` | `https://developer.android.com/reference/kotlin/androidx/media3/common/util/BitmapLoader#loadBitmapFromMetadata(androidx.media3.common.MediaMetadata)(metadata: https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata!)` Loads an image from `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/common/util/BitmapLoader#supportsMimeType(java.lang.String)(mimeType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!)` Returns whether the given `mimeType` is supported. |

## Public functions

### decodeBitmap

```
fun decodeBitmap(data: ByteArray<Byte>!): ListenableFuture<Bitmap!>!
```

Decodes an image from compressed binary data.

### loadBitmap

```
fun loadBitmap(uri: Uri!): ListenableFuture<Bitmap!>!
```

Loads an image from `uri`.

### loadBitmapFromMetadata

```
fun loadBitmapFromMetadata(metadata: MediaMetadata!): ListenableFuture<Bitmap!>?
```

Loads an image from `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata`. Returns null if `metadata` doesn't contain bitmap information.

By default, the method will try to decode an image from `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#artworkData()` if it is present. Otherwise, the method will try to load an image from `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#artworkUri()` if it is present. The method will return null if neither `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#artworkData()` nor `https://developer.android.com/reference/kotlin/androidx/media3/common/MediaMetadata#artworkUri()` is present.

### supportsMimeType

```
fun supportsMimeType(mimeType: String!): Boolean
```

Returns whether the given `mimeType` is supported.