PAGView的使用:

3 阅读2分钟

一句话:PAGView 是什么?

PAGView = 用来播放腾讯 PAG 动效文件的专用视图(.pag 文件)

就是:

  • 设计师用 AE 做动画 → 导出  .pag 文件
  • 安卓用 PAGView 播放
  • 比 Lottie 更强、更清晰、占用更小

一、先加依赖(必须)

// PAG 动效库(腾讯官方)
implementation "com.tencent.tav:libpag:4.4.35"

二、两种使用方式(XML / Kotlin 代码)

1)XML 布局里用(最常用)

<!-- PAG 动画播放器 -->
<org.libpag.PAGView
android:id="@+id/pag_view"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center"/>

三、最核心:播放 pag 文件(3 行代码搞定)

把 xxx.pag 文件放到 src/main/assets/  目录下

// 1. 从 assets 加载 pag 文件(必须这样写,否则加载不到)
val fileName = "anim_success.pag"
val pagFile = PAGFile.Load(this.getAssets(), fileName)

// 2. 设置给 PAGView
pagView.setComposition(pagFile)

// 3. 播放
pagView.play()

✅ 搞定!动画直接播放!


四、常用功能(你项目 100% 会用到)

1. 循环播放

pagView.setLoopCount(-1) // -1 = 无限循环
pagView.setLoopCount(3) // 播放 3 次

2. 监听播放结束

pagView.addListener(object : PAGView.Listener {
    override fun onAnimationEnd() {
        // 动画播放完毕
    }
})

3. 暂停 / 继续 / 停止

pagView.pause()   // 暂停
pagView.play()    // 继续
pagView.stop()    // 停止
pagView.isPlaying // 是否正在播放
repeatCount = 你想【额外重复】几次 
最终播放次数 = repeatCount + 1

所以:

  • 0 → 0 次额外重复 → 总共播 1 次
  • 1 → 额外重复 1 次 → 总共播 2 次
  • -1 → 无限循环
//额外重复
pagView.setRepeatCount(0)    // 播1次就停(默认)
pagView.setRepeatCount(3)    // 播4次停
pagView.setRepeatCount(-1)   // 无限循环

4. 设置播放速度

pagView.setSpeed(1.0f)  // 正常
pagView.setSpeed(0.5f)  // 慢动作
pagView.setSpeed(2.0f)  // 2倍速

5. 释放资源(必须写,防止内存泄漏)

override fun onDestroy() {
    super.onDestroy()
    pagView.free()
}

五、完整可运行代码(Activity 里直接用)


class PagDemoActivity : AppCompatActivity() {
    private lateinit var pagView: PAGView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_pag_demo)

        pagView = findViewById(R.id.pag_view)

        // 加载 pag 动画
        val fileName = "anim_success.pag"
        val pagFile = PAGFile.Load(this.getAssets(), fileName)
        pagView.setComposition(pagFile)

        // 无限循环
        pagView.setLoopCount(-1)

        // 播放
        pagView.play()
    }

    override fun onDestroy() {
        super.onDestroy()
        pagView.free() // 释放
    }
}

六、超通俗总结(必记)

  1. PAGView = 播放 .pag 动画的控件
  2. 放到 assets 目录
  3. load → set → play
  4. 循环、监听、暂停、释放

七、你什么时候用 PAGView?

  • 启动动画
  • 加载动画
  • 成功 / 失败动效
  • 礼物动效
  • 聊天动效
  • 所有高端 AE 动画