| package org.skia.skottie; |
| |
| import android.app.Activity; |
| import android.content.Intent; |
| import android.os.Bundle; |
| import android.view.Window; |
| import android.view.WindowManager; |
| |
| import com.airbnb.lottie.LottieAnimationView; |
| import com.airbnb.lottie.LottieDrawable; |
| import com.airbnb.lottie.RenderMode; |
| |
| public class PerfActivity extends Activity { |
| |
| int rawAssets[] = { |
| R.raw.star, R.raw.movie_loading, R.raw.uk, R.raw.white_material_wave_loading, |
| R.raw.check_animation, R.raw.confetti, R.raw.gears, |
| R.raw.hand_sanitizer, R.raw.heart_preloader, R.raw.i_was_scared_after_that_brouhaha, |
| R.raw.im_thirsty, R.raw.true_will, R.raw.workout_monkey_stay_healthy, |
| R.raw.ripple_loading_animation, R.raw.signature, R.raw.asdasd, R.raw.celebration, |
| R.raw.check |
| }; |
| |
| @Override |
| protected void onCreate(Bundle savedInstanceState) { |
| //Remove title bar |
| this.requestWindowFeature(Window.FEATURE_NO_TITLE); |
| |
| //Remove notification bar |
| this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, |
| WindowManager.LayoutParams.FLAG_FULLSCREEN); |
| |
| super.onCreate(savedInstanceState); |
| // Run activity with: |
| // adb shell am start -n org.skia.skottie/.PerfActivity --ei renderer 0 --ei file 0 |
| // renderer is 0 to 2, file is 0 to 14 |
| Intent intent = getIntent(); |
| int renderer = intent.getIntExtra("renderer", 0); |
| int file = intent.getIntExtra("file", 0); |
| if (file < 0 || file >= rawAssets.length) { |
| return; |
| } |
| switch (renderer) { |
| case 0: |
| // render with airbnb hardware lottie player |
| runLottie(rawAssets[file], true); |
| break; |
| case 1: |
| // render with airbnb software lottie player |
| runLottie(rawAssets[file], false); |
| break; |
| case 2: |
| // render with skottie player |
| runSkottie(rawAssets[file]); |
| break; |
| default: |
| break; |
| } |
| |
| } |
| |
| void runSkottie(int id) { |
| SkottieView view = new SkottieView(this); |
| view.setSource(getResources().openRawResource(id)); |
| view.start(); |
| setContentView(view); |
| } |
| |
| void runLottie(int id, boolean useHardware) { |
| LottieAnimationView lottie = new LottieAnimationView(this); |
| lottie.setAnimation(id); |
| if (useHardware) { |
| lottie.setRenderMode(RenderMode.HARDWARE); |
| } else { |
| lottie.setRenderMode(RenderMode.SOFTWARE); |
| } |
| lottie.setRepeatMode(LottieDrawable.RESTART); |
| lottie.setRepeatCount(LottieDrawable.INFINITE); |
| lottie.playAnimation(); |
| setContentView(lottie); |
| } |
| } |