diff --git a/api/current.txt b/api/current.txt index fb2c0ffab67f3..8165873d14bf1 100644 --- a/api/current.txt +++ b/api/current.txt @@ -32397,6 +32397,7 @@ package android.util { method public static int complexToDimensionPixelSize(int, android.util.DisplayMetrics); method public static float complexToFloat(int); method public static float complexToFraction(int, float, float); + method public int getComplexUnit(); method public float getDimension(android.util.DisplayMetrics); method public final float getFloat(); method public float getFraction(float, float); diff --git a/core/java/android/util/TypedValue.java b/core/java/android/util/TypedValue.java index d42ed0315fc98..74d42452503e8 100644 --- a/core/java/android/util/TypedValue.java +++ b/core/java/android/util/TypedValue.java @@ -311,6 +311,18 @@ public class TypedValue { return complexToDimension(data, metrics); } + /** + * Return the complex unit type for this value. For example, a dimen type + * with value 12sp will return {@link #COMPLEX_UNIT_SP}. Only use for values + * whose type is {@link #TYPE_DIMENSION}. + * + * @return The complex unit type. + */ + public int getComplexUnit() + { + return COMPLEX_UNIT_MASK & (data>>TypedValue.COMPLEX_UNIT_SHIFT); + } + /** * Converts an unpacked complex data value holding a dimension to its final floating * point value. The two parameters unit and value