# GifApngPlayer **Repository Path**: NeedJava/GifApngPlayer ## Basic Information - **Project Name**: GifApngPlayer - **Description**: 一个支持GIF和APNG的统一动画播放组件,支持Android和Java Swing - **Primary Language**: Android - **License**: BSD-2-Clause - **Default Branch**: master - **Homepage**: https://gitee.com/NeedJava/GifApngPlayer - **GVP Project**: No ## Statistics - **Stars**: 14 - **Forks**: 2 - **Created**: 2019-05-25 - **Last Updated**: 2024-08-31 ## Categories & Tags **Categories**: android-modules **Tags**: None ## README # GifApngPlayer ### Description An animated image player, supports both GIF and APNG, support both Android and Swing. ### Features: 1. Seamless switching animation GIF/APNG. 2. Support Android/Java Swing. 3. Support Pause/Resume animation. ## For Android: ![](https://github.com/NeedJava1980/GifApngPlayer/raw/master/snapshot/AnimatedPlayer2.gif) ### How to start: AnimateManager mManager = new AnimateManager(); mManager.setSurfaceBackground( mSurfaceBackground ); //Optional, for example Color.GRAY mManager.setView( mSurfaceView ); //android.view.SurfaceView or android.widget.ImageView mManager.setUri( intent.getData() ); //MUST after setView mManager.restart( mManager.getInputStream() ); ### Change GIF/APNG file (Has file extension): mManager.setTerminated(); mManager.setUri( intent.getData() ); //MUST after setView, sample.gif or sample.png mManager.restart( mManager.getInputStream() ); ### Change GIF/APNG file (No file extension): mManager.setTerminated(); mManager.setUri( intent.getData() ); //MUST after setView, sample.gif or sample.png mManager.setType( AnimateManager.TYPE_GIF ); //AnimateManager.TYPE_GIF or AnimateManager.TYPE_APNG mManager.restart( mManager.getInputStream() ); ### Read resource file from drawable/mipmap/raw (No file extension): final Uri uri = Uri.parse( "android.resource://" + getPackageName() + "/" + R.drawable.sample ); mManager.setTerminated(); mManager.setUri( uri ); //MUST after setView, sample.gif or sample.png mManager.setType( AnimateManager.TYPE_GIF ); //AnimateManager.TYPE_GIF or AnimateManager.TYPE_APNG mManager.restart( mManager.getInputStream() ); ### Change GIF/APNG rendering view: mManager.setTerminated(); mManager.setSurfaceBackground( mSurfaceBackground ); //Optional, for example Color.GRAY mManager.setView( mSurfaceView ); //android.view.SurfaceView or android.widget.ImageView mManager.restart( mManager.getInputStream() ); ### Pause or Resume: mManager.setPaused( ! mManager.isPaused() ); ### DO NOT forget: mManager.setTerminated(); ## For Java Swing: ![](https://github.com/NeedJava1980/GifApngPlayer/raw/master/snapshot/AnimatedPlayer1.gif) ### How to start: AnimateManager mManager = new AnimateManager(); mManager.setFile( new java.io.File( "sample.gif" ) ); mManager.setView( mLabel ); //javax.swing.JLabel mManager.restart( mManager.getInputStream() ); ### Change GIF/APNG file (Has file extension): mManager.setTerminated(); mManager.setFile( new java.io.File( "sample.gif" ) ); //sample.gif or sample.png mManager.restart( mManager.getInputStream() ); ### Change GIF/APNG file (No file extension): mManager.setTerminated(); mManager.setFile( new java.io.File( "sample" ) ); mManager.setType( AnimateManager.TYPE_GIF ); //AnimateManager.TYPE_GIF or AnimateManager.TYPE_APNG mManager.restart( mManager.getInputStream() ); ### Change GIF/APNG rendering view: mManager.setTerminated(); mManager.setView( mLabel ); //javax.swing.JLabel mManager.restart( mManager.getInputStream() ); ### Pause or Resume: mManager.setPaused( ! mManager.isPaused() ); ### DO NOT forget: mManager.setTerminated();