@Override public int getCompoundPaddingBottom() { // include extra padding to make the height a multiple of 4dp return super.getCompoundPaddingBottom() + extraBottomPadding; }
@Override public int getCompoundPaddingTop() { // include extra padding to place the first line's baseline on the grid return super.getCompoundPaddingTop() + extraTopPadding; }
@Override public void setImageResource(int resId) { super.setImageResource(resId); }
@Override public void setImageDrawable(Drawable drawable) { super.setImageDrawable(drawable); }
@Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); if (foreground != null) { foreground.setBounds(0, 0, w, h); } }
@Override public void setImageURI(Uri uri) { super.setImageURI(uri); if (attacher != null) { attacher.update(); } }
@Override public void setImageBitmap(Bitmap bm) { super.setImageBitmap(bm); }
@Override protected boolean verifyDrawable(Drawable who) { return who == mMaskDrawable || super.verifyDrawable(who); }
@Override protected boolean setFrame(int l, int t, int r, int b) { boolean changed = super.setFrame(l, t, r, b); if (changed) { attacher.update(); } return changed; }
@Override public void draw(Canvas canvas) { super.draw(canvas); if (foreground != null) { foreground.draw(canvas); } }
@Override public void invalidateDrawable(@NonNull Drawable dr) { if (getDrawable() == lottieDrawable) { // We always want to invalidate the root drawable so it redraws the whole drawable. // Eventually it would be great to be able to invalidate just the changed region. super.invalidateDrawable(lottieDrawable); } else { // Otherwise work as regular ImageView super.invalidateDrawable(dr); } }
@Override protected void onAttachedToWindow() { super.onAttachedToWindow(); if (autoPlay && wasAnimatingWhenDetached) { playAnimation(); } }
@Override public void drawableHotspotChanged(float x, float y) { super.drawableHotspotChanged(x, y); if (foreground != null) { foreground.setHotspot(x, y); } } }
@Override public void jumpDrawablesToCurrentState() { super.jumpDrawablesToCurrentState(); if (foreground != null) foreground.jumpToCurrentState(); }
@Override protected void onDetachedFromWindow() { if (isAnimating()) { cancelAnimation(); wasAnimatingWhenDetached = true; } super.onDetachedFromWindow(); }
@Override public void setImageDrawable(Drawable drawable) { cancelLoaderTask(); super.setImageDrawable(drawable); }
@Override public void setImageResource(int resId) { cancelLoaderTask(); super.setImageResource(resId); }
@Override public void setImageBitmap(Bitmap bm) { cancelLoaderTask(); super.setImageBitmap(bm); }
@Override public void setImageDrawable(Drawable drawable) { super.setImageDrawable(drawable); // setImageBitmap calls through to this method if (attacher != null) { attacher.update(); } }
@Override public void setImageResource(int resId) { super.setImageResource(resId); if (attacher != null) { attacher.update(); } }