Fix gradient drawable radius when specified as float, dimension

BUG: 18070756
Change-Id: I991ff792c376c9695a007f8f1187390ab5ff6e3c
This commit is contained in:
Alan Viverette
2014-10-21 11:04:04 -07:00
parent d00e68c3b6
commit 2efbe9816e
2 changed files with 5 additions and 2 deletions

View File

@@ -4911,7 +4911,7 @@
<!-- Y coordinate of the origin of the gradient within the shape. -->
<attr name="centerY" format="float|fraction" />
<!-- Radius of the gradient, used only with radial gradient. -->
<attr name="gradientRadius" format="float|fraction" />
<attr name="gradientRadius" format="float|fraction|dimension" />
</declare-styleable>
<!-- Used to fill the shape of GradientDrawable with a solid color. -->

View File

@@ -1395,9 +1395,12 @@ public class GradientDrawable extends Drawable {
} else {
radiusType = RADIUS_TYPE_FRACTION;
}
} else {
} else if (tv.type == TypedValue.TYPE_DIMENSION) {
radius = tv.getDimension(r.getDisplayMetrics());
radiusType = RADIUS_TYPE_PIXELS;
} else {
radius = tv.getFloat();
radiusType = RADIUS_TYPE_PIXELS;
}
st.mGradientRadius = radius;