Animation Android
- Support APNG & Animated Webp & Gif & AVIF in Android
- Efficient decoder
- Support Drawable usage and glide library module
- Support animation play control
- Support still image
- Low memory usage
Usages
Add dependency in build.gradle
repositories {
mavenCentral()
}
Animated WebP
dependencies {
implementation 'com.github.penfeizhou.android.animation:awebp:${VERSION}'
}
APNG
dependencies {
implementation 'com.github.penfeizhou.android.animation:apng:${VERSION}'
}
Gif
dependencies {
implementation 'com.github.penfeizhou.android.animation:gif:${VERSION}'
}
AVIF
dependencies {
implementation 'com.github.penfeizhou.android.animation:avif:${VERSION}'
}
Notice Before Use!
Don't put APNG resources in your drawable or mipmap directory!
During the process of release building of an Android app, the aapt tool will zip & modify the frame info of the APNG file, which will lead to an abnormal behavior when playing it. Thus, please put the APNG resources in raw
or assets
folder instead.
Use
AssetStreamLoader assetLoader = new AssetStreamLoader(context, "wheel.png");
ResourceStreamLoader resourceLoader = new ResourceStreamLoader(context, R.drawable.sample);
FileStreamLoader fileLoader = new FileStreamLoader("/sdcard/Pictures/1.webp");
APNGDrawable apngDrawable = new APNGDrawable(assetLoader);
WebPDrawable webpDrawable = new WebPDrawable(assetLoader);
AVIFDrawable avifDrawable = new AVIFDrawable(assetLoader);
imageView.setImageDrawable(apngDrawable);
apngDrawable.setLoopLimit(10);
drawable.registerAnimationCallback(new Animatable2Compat.AnimationCallback() {
@Override
public void onAnimationStart(Drawable drawable) {
super.onAnimationStart(drawable);
}
});
Glide support
Add dependency in build.gradle
repositories {
...
mavenCentral()
}
dependencies {
implementation 'com.github.penfeizhou.android.animation:glide-plugin:${VERSION}'
}
Direct use
Glide.with(imageView).load("https://misc.aotu.io/ONE-SUNDAY/SteamEngine.png").into(imageView);
Glide.with(imageView).load("https://isparta.github.io/compare-webp/image/gif_webp/webp/2.webp").into(imageView);
Welcome to join the talk
Star History