# 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 ### 介绍 一个支持GIF和APNG的统一动画播放组件,支持Android和Java Swing ### 功能: 1. 支持 GIF/APNG 无缝切换。 2. 支持 Android/Java Swing。 3. 支持暂停和继续动画。 ## Android使用: ![](https://github.com/NeedJava1980/GifApngPlayer/raw/master/snapshot/AnimatedPlayer2.gif) ### 如何开始: 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() ); ### 更改 GIF/APNG 文件(有文件后缀): mManager.setTerminated(); mManager.setUri( intent.getData() ); //MUST after setView, sample.gif or sample.png mManager.restart( mManager.getInputStream() ); ### 更改 GIF/APNG 文件(无文件后缀): 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() ); ### 从 drawable/mipmap/raw 读取文件(无文件后缀): 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() ); ### 更改 GIF/APNG 渲染画布: mManager.setTerminated(); mManager.setSurfaceBackground( mSurfaceBackground ); //Optional, for example Color.GRAY mManager.setView( mSurfaceView ); //android.view.SurfaceView or android.widget.ImageView mManager.restart( mManager.getInputStream() ); ### 暂停 或 继续: mManager.setPaused( ! mManager.isPaused() ); ### 注意不要忘记: mManager.setTerminated(); ## Swing使用: ![](https://github.com/NeedJava1980/GifApngPlayer/raw/master/snapshot/AnimatedPlayer1.gif) ### 如何开始: AnimateManager mManager = new AnimateManager(); mManager.setFile( new java.io.File( "sample.gif" ) ); mManager.setView( mLabel ); //javax.swing.JLabel mManager.restart( mManager.getInputStream() ); ### 更改 GIF/APNG 文件(有文件后缀): mManager.setTerminated(); mManager.setFile( new java.io.File( "sample.gif" ) ); //sample.gif or sample.png mManager.restart( mManager.getInputStream() ); ### 更改 GIF/APNG 文件(无文件后缀): 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() ); ### 更改 GIF/APNG 渲染画布: mManager.setTerminated(); mManager.setView( mLabel ); //javax.swing.JLabel mManager.restart( mManager.getInputStream() ); ### 暂停 或 继续: mManager.setPaused( ! mManager.isPaused() ); ### 注意不要忘记: mManager.setTerminated();