public void setOval(boolean oval) { mOval = oval; if (mDrawable instanceof RoundedDrawable) { ((RoundedDrawable) mDrawable).setOval(oval); } if (mRoundBackground && mBackgroundDrawable instanceof RoundedDrawable) { ((RoundedDrawable) mBackgroundDrawable).setOval(oval); } invalidate(); }
private void updateDrawableAttrs(RoundedDrawable drawable) { drawable.setScaleType(mScaleType); drawable.setCornerRadius(mCornerRadius); drawable.setBorderWidth(mBorderWidth); drawable.setBorderColors(mBorderColor); drawable.setOval(mOval); }
private void updateAttrs(Drawable drawable) { if (drawable == null) { return; } if (drawable instanceof RoundedDrawable) { ((RoundedDrawable) drawable) .setScaleType(mScaleType) .setCornerRadius(cornerRadius) .setBorderWidth(borderWidth) .setBorderColor(borderColor) .setOval(isOval); } else if (drawable instanceof LayerDrawable) { // loop through layers to and set drawable attrs LayerDrawable ld = ((LayerDrawable) drawable); for (int i = 0, layers = ld.getNumberOfLayers(); i < layers; i++) { updateAttrs(ld.getDrawable(i)); } } }