# TypedValueCompat

Artifact: [androidx.core:core](https://developer.android.com/jetpack/androidx/releases/core) [View Source](https://cs.android.com/search?q=file:androidx/core/util/TypedValueCompat.java+class:androidx.core.util.TypedValueCompat) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/core#1.12.0)

*** ** * ** ***


```
public class TypedValueCompat
```

<br />

*** ** * ** ***

Container for a dynamically typed data value. Primarily used with `https://developer.android.com/reference/android/content/res/Resources.html` for holding resource values.

Used to convert between dimension values like DP and SP to pixels, and vice versa.

## Summary

| ### Public methods |
|---|---|
| `static float` | `https://developer.android.com/reference/androidx/core/util/TypedValueCompat#deriveDimension(int,float,android.util.DisplayMetrics)( int unitToConvertTo, float pixelValue, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/util/DisplayMetrics.html metrics )` Converts a pixel value to the given dimension, e.g. PX to DP. |
| `static float` | `https://developer.android.com/reference/androidx/core/util/TypedValueCompat#dpToPx(float,android.util.DisplayMetrics)(float dpValue, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/util/DisplayMetrics.html metrics)` Converts a density-independent pixels (DP) value to pixels |
| `static int` | `https://developer.android.com/reference/androidx/core/util/TypedValueCompat#getUnitFromComplexDimension(int)(int complexDimension)` Return the complex unit type for the given complex dimension. |
| `static float` | `https://developer.android.com/reference/androidx/core/util/TypedValueCompat#pxToDp(float,android.util.DisplayMetrics)(float pixelValue, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/util/DisplayMetrics.html metrics)` Converts a pixel value to density-independent pixels (DP) |
| `static float` | `https://developer.android.com/reference/androidx/core/util/TypedValueCompat#pxToSp(float,android.util.DisplayMetrics)(float pixelValue, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/util/DisplayMetrics.html metrics)` Converts a pixel value to scaled pixels (SP) |
| `static float` | `https://developer.android.com/reference/androidx/core/util/TypedValueCompat#spToPx(float,android.util.DisplayMetrics)(float spValue, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/util/DisplayMetrics.html metrics)` Converts a scaled pixels (SP) value to pixels |

## Public methods

### deriveDimension

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

```
public static float deriveDimension(
    int unitToConvertTo,
    float pixelValue,
    @NonNull DisplayMetrics metrics
)
```

Converts a pixel value to the given dimension, e.g. PX to DP.

This is the inverse of `https://developer.android.com/reference/android/util/TypedValue.html#applyDimension(int, float, android.util.DisplayMetrics)`

| Parameters |
|---|---|
| `int unitToConvertTo` | The unit to convert to. |
| `float pixelValue` | The raw pixels value to convert from. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/util/DisplayMetrics.html metrics` | Current display metrics to use in the conversion -- supplies display density and scaling information. |

| Returns |
|---|---|
| `float` | A dimension value equivalent to the given number of pixels |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | if unitToConvertTo is not valid. |

### dpToPx

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

```
public static float dpToPx(float dpValue, @NonNull DisplayMetrics metrics)
```

Converts a density-independent pixels (DP) value to pixels

This is a convenience function for `https://developer.android.com/reference/android/util/TypedValue.html#applyDimension(int, float, android.util.DisplayMetrics)`

| Parameters |
|---|---|
| `float dpValue` | The value in DP to convert from. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/util/DisplayMetrics.html metrics` | Current display metrics to use in the conversion -- supplies display density and scaling information. |

| Returns |
|---|---|
| `float` | A raw pixel value |

### getUnitFromComplexDimension

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

```
public static int getUnitFromComplexDimension(int complexDimension)
```

Return the complex unit type for the given complex dimension. For example, a dimen type with value 12sp will return `https://developer.android.com/reference/android/util/TypedValue.html#COMPLEX_UNIT_SP`.

| Parameters |
|---|---|
| `int complexDimension` | the dimension, typically `https://developer.android.com/reference/android/util/TypedValue.html#data` |

| Returns |
|---|---|
| `int` | The complex unit type |

### pxToDp

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

```
public static float pxToDp(float pixelValue, @NonNull DisplayMetrics metrics)
```

Converts a pixel value to density-independent pixels (DP)

This is a convenience function for `https://developer.android.com/reference/androidx/core/util/TypedValueCompat#deriveDimension(int,float,android.util.DisplayMetrics)`

| Parameters |
|---|---|
| `float pixelValue` | The raw pixels value to convert from. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/util/DisplayMetrics.html metrics` | Current display metrics to use in the conversion -- supplies display density and scaling information. |

| Returns |
|---|---|
| `float` | A dimension value (in DP) representing the given number of pixels. |

### pxToSp

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

```
public static float pxToSp(float pixelValue, @NonNull DisplayMetrics metrics)
```

Converts a pixel value to scaled pixels (SP)

This is a convenience function for `https://developer.android.com/reference/androidx/core/util/TypedValueCompat#deriveDimension(int,float,android.util.DisplayMetrics)`

| Parameters |
|---|---|
| `float pixelValue` | The raw pixels value to convert from. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/util/DisplayMetrics.html metrics` | Current display metrics to use in the conversion -- supplies display density and scaling information. |

| Returns |
|---|---|
| `float` | A dimension value (in SP) representing the given number of pixels. |

### spToPx

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

```
public static float spToPx(float spValue, @NonNull DisplayMetrics metrics)
```

Converts a scaled pixels (SP) value to pixels

This is a convenience function for `https://developer.android.com/reference/android/util/TypedValue.html#applyDimension(int, float, android.util.DisplayMetrics)`

| Parameters |
|---|---|
| `float spValue` | The value in SP to convert from. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/util/DisplayMetrics.html metrics` | Current display metrics to use in the conversion -- supplies display density and scaling information. |

| Returns |
|---|---|
| `float` | A raw pixel value |