Skip to content

Fresco SVG Support

Gradle

implementation("com.facebook.fresco:fresco:3.4.0")
implementation("com.facebook.fresco:middleware:3.4.0")
implementation("com.caverock:androidsvg:1.4")

Init

val imageDecoderConfig = ImageDecoderConfig.newBuilder()
            .addDecodingCapability(
                SvgDecoderExample.SVG_FORMAT,
                SvgDecoderExample.SvgFormatChecker(),
                SvgDecoderExample.SvgDecoder()
            )
            .build()
        val config = ImagePipelineConfig.newBuilder(this)
            .setDownsampleEnabled(true)
            .setImageDecoderConfig(imageDecoderConfig)
            .build()
        val draweeConfig = DraweeConfig.newBuilder()
            .addCustomDrawableFactory(SvgDecoderExample.SvgDrawableFactory())
            .build()
        Fresco.initialize(this, config, draweeConfig)

"SvgDecoderExample" Source Code

proguard-rules.pro

-keep class com.caverock.androidsvg.** { *; }
-dontwarn com.caverock.androidsvg.**

Ref

https://code.luasoftware.com/tutorials/android/android-fresco-load-svg-drawable/ https://github.com/facebook/fresco/issues/2714