diff --git a/frameanimation/src/main/java/com/github/penfeizhou/animation/FrameAnimationDrawable.java b/frameanimation/src/main/java/com/github/penfeizhou/animation/FrameAnimationDrawable.java index 08b3d80..be75394 100644 --- a/frameanimation/src/main/java/com/github/penfeizhou/animation/FrameAnimationDrawable.java +++ b/frameanimation/src/main/java/com/github/penfeizhou/animation/FrameAnimationDrawable.java @@ -130,7 +130,9 @@ public void start() { this.frameSeqDecoder.stop(); } this.frameSeqDecoder.reset(); - innerStart(); + if (isVisible()) { + innerStart(); + } } private void innerStart() { @@ -172,7 +174,7 @@ public boolean isRunning() { } @Override - public void draw(Canvas canvas) { + public void draw(@NonNull Canvas canvas) { if (bitmap == null || bitmap.isRecycled()) { return; } @@ -355,4 +357,12 @@ public void invalidateSelf() { public Decoder getFrameSeqDecoder() { return frameSeqDecoder; } + + protected Bitmap getBitmap() { + return bitmap; + } + + protected DrawFilter getDrawFilter() { + return drawFilter; + } }