Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e1c6ff4b authored by Romain Guy's avatar Romain Guy
Browse files

Make setGradientCenter/Radius work.

The previous implementation would not rebuild the gradient shader
when programmatically changing the shader's properties. Also fixes
the documentation since the gradient center does affect linear
gradients.

Change-Id: I5387188484b862f6835b0da9042b25032e55e792
parent ee6d5cfd
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -1561,11 +1561,9 @@ want, providing zero ("0dp") where you don't want rounded corners.</p>
        <dd><em>Integer</em>. The angle for the gradient, in degrees. 0 is left to right, 90 is
bottom to top. It must be a multiple of 45. Default is 0.</dd>
        <dt><code>android:centerX</code></dt>
        <dd><em>Float</em>. The relative X-position for the center of the gradient (0 - 1.0).
Does not apply when {@code android:type="linear"}.</dd>
        <dd><em>Float</em>. The relative X-position for the center of the gradient (0 - 1.0).</dd>
        <dt><code>android:centerY</code></dt>
        <dd><em>Float</em>. The relative Y-position for the center of the gradient (0 - 1.0).
Does not apply when {@code android:type="linear"}.</dd>
        <dd><em>Float</em>. The relative Y-position for the center of the gradient (0 - 1.0).</dd>
        <dt><code>android:centerColor</code></dt>
        <dd><em>Color</em>. Optional color that comes between the start and end colors, as a
hexadecimal value or <a href="more-resources.html#Color">color resource</a>.</dd>
+3 −0
Original line number Diff line number Diff line
@@ -240,16 +240,19 @@ public class GradientDrawable extends Drawable {

    public void setGradientCenter(float x, float y) {
        mGradientState.setGradientCenter(x, y);
        mRectIsDirty = true;
        invalidateSelf();
    }

    public void setGradientRadius(float gradientRadius) {
        mGradientState.setGradientRadius(gradientRadius);
        mRectIsDirty = true;
        invalidateSelf();
    }

    public void setUseLevel(boolean useLevel) {
        mGradientState.mUseLevel = useLevel;
        mRectIsDirty = true;
        invalidateSelf();
    }