/** * Sets padding for this shape, defined by a Rect object. Define the padding in the Rect object * as: left, top, right, bottom. */ public void setPadding(Rect padding) { if (padding == null) { mShapeState.mPadding = null; } else { if (mShapeState.mPadding == null) { mShapeState.mPadding = new Rect(); } mShapeState.mPadding.set(padding); } invalidateSelf(); }
/** * Sets padding for the shape. * * @param left padding for the left side (in pixels) * @param top padding for the top (in pixels) * @param right padding for the right side (in pixels) * @param bottom padding for the bottom (in pixels) */ public void setPadding(int left, int top, int right, int bottom) { if ((left | top | right | bottom) == 0) { mShapeState.mPadding = null; } else { if (mShapeState.mPadding == null) { mShapeState.mPadding = new Rect(); } mShapeState.mPadding.set(left, top, right, bottom); } invalidateSelf(); }
@Override public Drawable mutate() { if (!mMutated && super.mutate() == this) { mShapeState.mPaint = new Paint(mShapeState.mPaint); mShapeState.mPadding = new Rect(mShapeState.mPadding); try { mShapeState.mShape = mShapeState.mShape.clone(); } catch (CloneNotSupportedException e) { return null; } mMutated = true; } return this; }
/** * Sets a ShaderFactory to which requests for a {@link android.graphics.Shader} object will be * made. * * @param fact an instance of your ShaderFactory implementation */ public void setShaderFactory(ShaderFactory fact) { mShapeState.mShaderFactory = fact; }
/** Sets the Shape of this ShapeDrawable. */ public void setShape(Shape s) { mShapeState.mShape = s; updateShape(); }
/** * Creates a ShapeDrawable with a specified Shape. * * @param s the Shape that this ShapeDrawable should be */ public ShapeDrawable(Shape s) { this((ShapeState) null); mShapeState.mShape = s; }
@Override public ConstantState getConstantState() { mShapeState.mChangingConfigurations = getChangingConfigurations(); return mShapeState; }
/** * Set the alpha level for this drawable [0..255]. Note that this drawable also has a color in its * paint, which has an alpha as well. These two values are automatically combined during drawing. * Thus if the color's alpha is 75% (i.e. 192) and the drawable's alpha is 50% (i.e. 128), then * the combined alpha that will be used during drawing will be 37.5% (i.e. 96). */ @Override public void setAlpha(int alpha) { mShapeState.mAlpha = alpha; invalidateSelf(); }
/** * Sets the intrinsic (default) height for this shape. * * @param height the intrinsic height (in pixels) */ public void setIntrinsicHeight(int height) { mShapeState.mIntrinsicHeight = height; invalidateSelf(); }
/** * Sets the intrinsic (default) width for this shape. * * @param width the intrinsic width (in pixels) */ public void setIntrinsicWidth(int width) { mShapeState.mIntrinsicWidth = width; invalidateSelf(); }