Loading graphics/java/android/graphics/drawable/GradientDrawable.java +18 −60 Original line number Diff line number Diff line Loading @@ -266,7 +266,7 @@ public class GradientDrawable extends Drawable { * @see #setStroke(int, int) */ public void setStroke(int width, int color, float dashWidth, float dashGap) { mGradientState.setStroke(width, color, dashWidth, dashGap); mGradientState.setStroke(width, ColorStateList.valueOf(color), dashWidth, dashGap); setStrokeInternal(width, color, dashWidth, dashGap); } Loading @@ -288,15 +288,15 @@ public class GradientDrawable extends Drawable { */ public void setStroke( int width, ColorStateList colorStateList, float dashWidth, float dashGap) { mGradientState.setStroke(width, colorStateList, dashWidth, dashGap); final int color; if (colorStateList == null) { setStroke(width, Color.TRANSPARENT, dashWidth, dashGap); color = Color.TRANSPARENT; } else { mGradientState.setStroke(width, colorStateList, dashWidth, dashGap); final int[] stateSet = getState(); final int color = colorStateList.getColorForState(stateSet, 0); setStrokeInternal(width, color, dashWidth, dashGap); color = colorStateList.getColorForState(stateSet, 0); } setStrokeInternal(width, color, dashWidth, dashGap); } private void setStrokeInternal(int width, int color, float dashWidth, float dashGap) { Loading Loading @@ -529,8 +529,7 @@ public class GradientDrawable extends Drawable { mFillPaint.setAlpha(currFillAlpha); mFillPaint.setDither(mDither); mFillPaint.setColorFilter(mColorFilter); if (mColorFilter != null && !mGradientState.mHasSolidColor && mGradientState.mColorStateList == null) { if (mColorFilter != null && mGradientState.mColorStateList == null) { mFillPaint.setColor(mAlpha << 24); } if (haveStroke) { Loading Loading @@ -672,7 +671,7 @@ public class GradientDrawable extends Drawable { * @see #setColors(int[]) */ public void setColor(int argb) { mGradientState.setSolidColor(argb); mGradientState.setColorStateList(ColorStateList.valueOf(argb)); mFillPaint.setColor(argb); invalidateSelf(); } Loading @@ -691,15 +690,17 @@ public class GradientDrawable extends Drawable { * @see #mutate() */ public void setColor(ColorStateList colorStateList) { mGradientState.setColorStateList(colorStateList); final int color; if (colorStateList == null) { setColor(Color.TRANSPARENT); color = Color.TRANSPARENT; } else { final int color = colorStateList.getColorForState(getState(), 0); mGradientState.setColorStateList(colorStateList); final int[] stateSet = getState(); color = colorStateList.getColorForState(stateSet, 0); } mFillPaint.setColor(color); invalidateSelf(); } } @Override public boolean onStateChange(int[] stateSet) { Loading Loading @@ -910,7 +911,7 @@ public class GradientDrawable extends Drawable { // If we don't have a solid color, the alpha channel must be // maxed out so that alpha modulation works correctly. if (!st.mHasSolidColor && st.mColorStateList == null) { if (st.mColorStateList == null) { mFillPaint.setColor(Color.BLACK); } } Loading Loading @@ -1202,10 +1203,7 @@ public class GradientDrawable extends Drawable { public int[] mTempColors; // no need to copy public float[] mTempPositions; // no need to copy public float[] mPositions; public boolean mHasSolidColor; public int mSolidColor; public int mStrokeWidth = -1; // if >= 0 use stroking. public int mStrokeColor; public float mStrokeDashWidth; public float mStrokeDashGap; public float mRadius; // use this if mRadiusArray is null Loading Loading @@ -1241,10 +1239,8 @@ public class GradientDrawable extends Drawable { if (state.mPositions != null) { mPositions = state.mPositions.clone(); } mHasSolidColor = state.mHasSolidColor; mSolidColor = state.mSolidColor; mStrokeColorStateList = state.mStrokeColorStateList; mStrokeWidth = state.mStrokeWidth; mStrokeColor = state.mStrokeColor; mStrokeDashWidth = state.mStrokeDashWidth; mStrokeDashGap = state.mStrokeDashGap; mRadius = state.mRadius; Loading Loading @@ -1298,22 +1294,12 @@ public class GradientDrawable extends Drawable { } public void setColors(int[] colors) { mHasSolidColor = false; mColors = colors; mColorStateList = null; computeOpacity(); } public void setSolidColor(int argb) { mHasSolidColor = argb != Color.TRANSPARENT; mSolidColor = argb; mColors = null; mColorStateList = null; computeOpacity(); } public void setColorStateList(ColorStateList colorStateList) { mHasSolidColor = false; mColors = null; mColorStateList = colorStateList; computeOpacity(); Loading @@ -1336,9 +1322,6 @@ public class GradientDrawable extends Drawable { mOpaque = false; return; } } else if (!isOpaque(mStrokeColor)) { mOpaque = false; return; } } Loading @@ -1347,11 +1330,6 @@ public class GradientDrawable extends Drawable { return; } if (mHasSolidColor) { mOpaque = isOpaque(mSolidColor); return; } if (mColors != null) { for (int i = 0; i < mColors.length; i++) { if (!isOpaque(mColors[i])) { Loading @@ -1368,22 +1346,6 @@ public class GradientDrawable extends Drawable { return ((color >> 24) & 0xff) == 0xff; } public void setStroke(int width, int color) { mStrokeWidth = width; mStrokeColor = color; mStrokeColorStateList = null; computeOpacity(); } public void setStroke(int width, int color, float dashWidth, float dashGap) { mStrokeWidth = width; mStrokeColor = color; mStrokeColorStateList = null; mStrokeDashWidth = dashWidth; mStrokeDashGap = dashGap; computeOpacity(); } public void setStroke( int width, ColorStateList colorStateList, float dashWidth, float dashGap) { mStrokeWidth = width; Loading Loading @@ -1426,9 +1388,7 @@ public class GradientDrawable extends Drawable { } private void initializeWithState(GradientState state) { if (state.mHasSolidColor) { mFillPaint.setColor(state.mSolidColor); } else if (state.mColorStateList != null) { if (state.mColorStateList != null) { final int[] currentState = getState(); final int stateColor = state.mColorStateList.getColorForState(currentState, 0); mFillPaint.setColor(stateColor); Loading @@ -1451,8 +1411,6 @@ public class GradientDrawable extends Drawable { final int strokeStateColor = state.mStrokeColorStateList.getColorForState( currentState, 0); mStrokePaint.setColor(strokeStateColor); } else { mStrokePaint.setColor(state.mStrokeColor); } if (state.mStrokeDashWidth != 0.0f) { Loading Loading
graphics/java/android/graphics/drawable/GradientDrawable.java +18 −60 Original line number Diff line number Diff line Loading @@ -266,7 +266,7 @@ public class GradientDrawable extends Drawable { * @see #setStroke(int, int) */ public void setStroke(int width, int color, float dashWidth, float dashGap) { mGradientState.setStroke(width, color, dashWidth, dashGap); mGradientState.setStroke(width, ColorStateList.valueOf(color), dashWidth, dashGap); setStrokeInternal(width, color, dashWidth, dashGap); } Loading @@ -288,15 +288,15 @@ public class GradientDrawable extends Drawable { */ public void setStroke( int width, ColorStateList colorStateList, float dashWidth, float dashGap) { mGradientState.setStroke(width, colorStateList, dashWidth, dashGap); final int color; if (colorStateList == null) { setStroke(width, Color.TRANSPARENT, dashWidth, dashGap); color = Color.TRANSPARENT; } else { mGradientState.setStroke(width, colorStateList, dashWidth, dashGap); final int[] stateSet = getState(); final int color = colorStateList.getColorForState(stateSet, 0); setStrokeInternal(width, color, dashWidth, dashGap); color = colorStateList.getColorForState(stateSet, 0); } setStrokeInternal(width, color, dashWidth, dashGap); } private void setStrokeInternal(int width, int color, float dashWidth, float dashGap) { Loading Loading @@ -529,8 +529,7 @@ public class GradientDrawable extends Drawable { mFillPaint.setAlpha(currFillAlpha); mFillPaint.setDither(mDither); mFillPaint.setColorFilter(mColorFilter); if (mColorFilter != null && !mGradientState.mHasSolidColor && mGradientState.mColorStateList == null) { if (mColorFilter != null && mGradientState.mColorStateList == null) { mFillPaint.setColor(mAlpha << 24); } if (haveStroke) { Loading Loading @@ -672,7 +671,7 @@ public class GradientDrawable extends Drawable { * @see #setColors(int[]) */ public void setColor(int argb) { mGradientState.setSolidColor(argb); mGradientState.setColorStateList(ColorStateList.valueOf(argb)); mFillPaint.setColor(argb); invalidateSelf(); } Loading @@ -691,15 +690,17 @@ public class GradientDrawable extends Drawable { * @see #mutate() */ public void setColor(ColorStateList colorStateList) { mGradientState.setColorStateList(colorStateList); final int color; if (colorStateList == null) { setColor(Color.TRANSPARENT); color = Color.TRANSPARENT; } else { final int color = colorStateList.getColorForState(getState(), 0); mGradientState.setColorStateList(colorStateList); final int[] stateSet = getState(); color = colorStateList.getColorForState(stateSet, 0); } mFillPaint.setColor(color); invalidateSelf(); } } @Override public boolean onStateChange(int[] stateSet) { Loading Loading @@ -910,7 +911,7 @@ public class GradientDrawable extends Drawable { // If we don't have a solid color, the alpha channel must be // maxed out so that alpha modulation works correctly. if (!st.mHasSolidColor && st.mColorStateList == null) { if (st.mColorStateList == null) { mFillPaint.setColor(Color.BLACK); } } Loading Loading @@ -1202,10 +1203,7 @@ public class GradientDrawable extends Drawable { public int[] mTempColors; // no need to copy public float[] mTempPositions; // no need to copy public float[] mPositions; public boolean mHasSolidColor; public int mSolidColor; public int mStrokeWidth = -1; // if >= 0 use stroking. public int mStrokeColor; public float mStrokeDashWidth; public float mStrokeDashGap; public float mRadius; // use this if mRadiusArray is null Loading Loading @@ -1241,10 +1239,8 @@ public class GradientDrawable extends Drawable { if (state.mPositions != null) { mPositions = state.mPositions.clone(); } mHasSolidColor = state.mHasSolidColor; mSolidColor = state.mSolidColor; mStrokeColorStateList = state.mStrokeColorStateList; mStrokeWidth = state.mStrokeWidth; mStrokeColor = state.mStrokeColor; mStrokeDashWidth = state.mStrokeDashWidth; mStrokeDashGap = state.mStrokeDashGap; mRadius = state.mRadius; Loading Loading @@ -1298,22 +1294,12 @@ public class GradientDrawable extends Drawable { } public void setColors(int[] colors) { mHasSolidColor = false; mColors = colors; mColorStateList = null; computeOpacity(); } public void setSolidColor(int argb) { mHasSolidColor = argb != Color.TRANSPARENT; mSolidColor = argb; mColors = null; mColorStateList = null; computeOpacity(); } public void setColorStateList(ColorStateList colorStateList) { mHasSolidColor = false; mColors = null; mColorStateList = colorStateList; computeOpacity(); Loading @@ -1336,9 +1322,6 @@ public class GradientDrawable extends Drawable { mOpaque = false; return; } } else if (!isOpaque(mStrokeColor)) { mOpaque = false; return; } } Loading @@ -1347,11 +1330,6 @@ public class GradientDrawable extends Drawable { return; } if (mHasSolidColor) { mOpaque = isOpaque(mSolidColor); return; } if (mColors != null) { for (int i = 0; i < mColors.length; i++) { if (!isOpaque(mColors[i])) { Loading @@ -1368,22 +1346,6 @@ public class GradientDrawable extends Drawable { return ((color >> 24) & 0xff) == 0xff; } public void setStroke(int width, int color) { mStrokeWidth = width; mStrokeColor = color; mStrokeColorStateList = null; computeOpacity(); } public void setStroke(int width, int color, float dashWidth, float dashGap) { mStrokeWidth = width; mStrokeColor = color; mStrokeColorStateList = null; mStrokeDashWidth = dashWidth; mStrokeDashGap = dashGap; computeOpacity(); } public void setStroke( int width, ColorStateList colorStateList, float dashWidth, float dashGap) { mStrokeWidth = width; Loading Loading @@ -1426,9 +1388,7 @@ public class GradientDrawable extends Drawable { } private void initializeWithState(GradientState state) { if (state.mHasSolidColor) { mFillPaint.setColor(state.mSolidColor); } else if (state.mColorStateList != null) { if (state.mColorStateList != null) { final int[] currentState = getState(); final int stateColor = state.mColorStateList.getColorForState(currentState, 0); mFillPaint.setColor(stateColor); Loading @@ -1451,8 +1411,6 @@ public class GradientDrawable extends Drawable { final int strokeStateColor = state.mStrokeColorStateList.getColorForState( currentState, 0); mStrokePaint.setColor(strokeStateColor); } else { mStrokePaint.setColor(state.mStrokeColor); } if (state.mStrokeDashWidth != 0.0f) { Loading