diff --git a/native/graphics/jni/imagedecoder.cpp b/native/graphics/jni/imagedecoder.cpp index 56f390698eb2a..23035b69af903 100644 --- a/native/graphics/jni/imagedecoder.cpp +++ b/native/graphics/jni/imagedecoder.cpp @@ -346,3 +346,10 @@ int AImageDecoder_decodeImage(AImageDecoder* decoder, void AImageDecoder_delete(AImageDecoder* decoder) { delete toDecoder(decoder); } + +bool AImageDecoder_isAnimated(AImageDecoder* decoder) { + if (!decoder) return false; + + ImageDecoder* imageDecoder = toDecoder(decoder); + return imageDecoder->mCodec->codec()->getFrameCount() > 1; +} diff --git a/native/graphics/jni/libjnigraphics.map.txt b/native/graphics/jni/libjnigraphics.map.txt index 01c14770bebd1..af2c455e36dff 100644 --- a/native/graphics/jni/libjnigraphics.map.txt +++ b/native/graphics/jni/libjnigraphics.map.txt @@ -13,6 +13,7 @@ LIBJNIGRAPHICS { AImageDecoder_setTargetSize; # introduced=30 AImageDecoder_computeSampledSize; # introduced=30 AImageDecoder_setCrop; # introduced=30 + AImageDecoder_isAnimated; # introduced=31 AImageDecoderHeaderInfo_getWidth; # introduced=30 AImageDecoderHeaderInfo_getHeight; # introduced=30 AImageDecoderHeaderInfo_getMimeType; # introduced=30