@Override public void setImageBitmap(Bitmap bm) { mResource = 0; mDrawable = RoundedDrawable.fromBitmap(bm); updateDrawableAttrs(); super.setImageDrawable(mDrawable); }
/** * Controls how the image should be resized or moved to match the size of this ImageView. * * @param scaleType The desired scaling mode. * @attr ref android.R.styleable#ImageView_scaleType */ @Override public void setScaleType(ScaleType scaleType) { assert scaleType != null; if (mScaleType != scaleType) { mScaleType = scaleType; switch (scaleType) { case CENTER: case CENTER_CROP: case CENTER_INSIDE: case FIT_CENTER: case FIT_START: case FIT_END: case FIT_XY: super.setScaleType(ScaleType.FIT_XY); break; default: super.setScaleType(scaleType); break; } updateDrawableAttrs(); updateBackgroundDrawableAttrs(false); invalidate(); } }
@Override public void setImageDrawable(Drawable drawable) { mResource = 0; mDrawable = RoundedDrawable.fromDrawable(drawable); updateDrawableAttrs(); super.setImageDrawable(mDrawable); }
public RoundedImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.RoundedImageView, defStyle, 0); int index = a.getInt(R.styleable.RoundedImageView_android_scaleType, -1); if (index >= 0) { setScaleType(sScaleTypeArray[index]); } mCornerRadius = a.getDimensionPixelSize(R.styleable.RoundedImageView_corner_radius, -1); mBorderWidth = a.getDimensionPixelSize(R.styleable.RoundedImageView_border_width, -1); // don't allow negative values for radius and border if (mCornerRadius < 0) { mCornerRadius = DEFAULT_RADIUS; } if (mBorderWidth < 0) { mBorderWidth = DEFAULT_BORDER; } mBorderColor = a.getColorStateList(R.styleable.RoundedImageView_border_color); if (mBorderColor == null) { mBorderColor = ColorStateList.valueOf(RoundedDrawable.DEFAULT_BORDER_COLOR); } mRoundBackground = a.getBoolean(R.styleable.RoundedImageView_round_background, false); mOval = a.getBoolean(R.styleable.RoundedImageView_is_oval, false); if (mDrawable instanceof RoundedDrawable) { updateDrawableAttrs((RoundedDrawable) mDrawable); } if (mRoundBackground) { if (!(mBackgroundDrawable instanceof RoundedDrawable)) { // try setting background drawable now that we got the mRoundBackground param setBackgroundDrawable(mBackgroundDrawable); } if (mBackgroundDrawable instanceof RoundedDrawable) { updateDrawableAttrs((RoundedDrawable) mBackgroundDrawable); } } a.recycle(); }
public void setCornerRadius(float radius) { if (cornerRadius == radius) { return; } cornerRadius = radius; updateDrawableAttrs(); updateBackgroundDrawableAttrs(false); }
@Override public void setImageResource(int resId) { if (mResource != resId) { mResource = resId; mDrawable = resolveResource(); updateDrawableAttrs(); super.setImageDrawable(mDrawable); } }
public void setImageBitmap(Bitmap bm) { if (bm != null) { mDrawable = new RoundedDrawable(bm, mCornerRadius, mBorderWidth, mBorderColor, mOval); updateDrawableAttrs((RoundedDrawable) mDrawable); } else { mDrawable = null; } super.setImageDrawable(mDrawable); }
public void setBorderWidth(float width) { if (borderWidth == width) { return; } borderWidth = width; updateDrawableAttrs(); updateBackgroundDrawableAttrs(false); invalidate(); }
@Override public void setImageDrawable(Drawable drawable) { if (drawable != null) { mDrawable = RoundedDrawable.fromDrawable(drawable, mCornerRadius, mBorderWidth, mBorderColor, mOval); updateDrawableAttrs((RoundedDrawable) mDrawable); } else { mDrawable = null; } super.setImageDrawable(mDrawable); }
public void setBorderColor(ColorStateList colors) { if (borderColor.equals(colors)) { return; } borderColor = (colors != null) ? colors : ColorStateList.valueOf(RoundedDrawable.DEFAULT_BORDER_COLOR); updateDrawableAttrs(); updateBackgroundDrawableAttrs(false); if (borderWidth > 0) { invalidate(); } }
@Override @Deprecated public void setBackgroundDrawable(Drawable background) { if (mRoundBackground && background != null) { mBackgroundDrawable = RoundedDrawable.fromDrawable( background, mCornerRadius, mBorderWidth, mBorderColor, mOval); updateDrawableAttrs((RoundedDrawable) mBackgroundDrawable); } else { mBackgroundDrawable = background; } super.setBackgroundDrawable(mBackgroundDrawable); }
public void setRoundBackground(boolean roundBackground) { if (mRoundBackground == roundBackground) { return; } mRoundBackground = roundBackground; if (roundBackground) { if (mBackgroundDrawable instanceof RoundedDrawable) { updateDrawableAttrs((RoundedDrawable) mBackgroundDrawable); } else { setBackgroundDrawable(mBackgroundDrawable); } } else if (mBackgroundDrawable instanceof RoundedDrawable) { ((RoundedDrawable) mBackgroundDrawable).setBorderWidth(0); ((RoundedDrawable) mBackgroundDrawable).setCornerRadius(0); } invalidate(); }
public RoundedImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.RoundedImageView, defStyle, 0); int index = a.getInt(R.styleable.RoundedImageView_android_scaleType, -1); if (index >= 0) { setScaleType(SCALE_TYPES[index]); } else { // default scaletype to FIT_CENTER setScaleType(ScaleType.FIT_CENTER); } cornerRadius = a.getDimensionPixelSize(R.styleable.RoundedImageView_corner_radius, -1); borderWidth = a.getDimensionPixelSize(R.styleable.RoundedImageView_border_width, -1); // don't allow negative values for radius and border if (cornerRadius < 0) { cornerRadius = DEFAULT_RADIUS; } if (borderWidth < 0) { borderWidth = DEFAULT_BORDER_WIDTH; } borderColor = a.getColorStateList(R.styleable.RoundedImageView_border_color); if (borderColor == null) { borderColor = ColorStateList.valueOf(RoundedDrawable.DEFAULT_BORDER_COLOR); } mutateBackground = a.getBoolean(R.styleable.RoundedImageView_mutate_background, false); isOval = a.getBoolean(R.styleable.RoundedImageView_oval, false); updateDrawableAttrs(); updateBackgroundDrawableAttrs(true); a.recycle(); }
public void setOval(boolean oval) { isOval = oval; updateDrawableAttrs(); updateBackgroundDrawableAttrs(false); invalidate(); }