You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何在Android 12以下版本显示.avif格式图片?

在Android 12以下版本加载AVIF图片的解决方案

一、扩展Glide支持AVIF

Glide默认不支持AVIF格式,需通过第三方解码库扩展能力:

  • 添加依赖:在Module级别的build.gradle中引入相关库
dependencies {
    // Glide核心库
    implementation 'com.github.bumptech.glide:glide:4.16.0'
    kapt 'com.github.bumptech.glide:compiler:4.16.0'
    // AVIF解码扩展插件
    implementation 'com.github.penfeizhou.android.animation:glide-plugin-avif:2.4.0'
}
  • 注册解码器:自定义AppGlideModule来注册AVIF解码组件
@GlideModule
public class CustomGlideModule extends AppGlideModule {
    @Override
    public void registerComponents(Context context, Glide glide, Registry registry) {
        registry.prepend(InputStream.class, AvifDrawable.class, new AvifDecoder(glide.getBitmapPool()));
    }
}

配置完成后,Glide即可在Android 9.0等低版本设备上正常加载AVIF图片。

二、使用独立AVIF解码库自行处理

若不想依赖图片加载框架,可直接用独立解码库实现:

  • 引入依赖:
implementation 'com.github.penfeizhou.android.animation:avif:2.4.0'
  • 解码示例(需在子线程执行,避免阻塞主线程):
// 获取AVIF文件输入流(网络或本地)
InputStream inputStream = ...;
AvifDecoder decoder = new AvifDecoder();
Drawable avifDrawable = decoder.decode(inputStream);
// 切换到主线程设置图片
runOnUiThread(() -> imageView.setImageDrawable(avifDrawable));

三、Picasso的处理建议

Picasso目前无官方或主流的AVIF扩展支持,建议直接切换到上述配置后的Glide,或自行封装RequestHandler结合独立解码库来适配AVIF格式。

内容的提问来源于stack exchange,提问作者Dazai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 22:14:56