1 package com.airbnb.lottie.animation.keyframe; 2 3 import android.graphics.Path; 4 5 import com.airbnb.lottie.model.animatable.AnimatableIntegerValue; 6 import com.airbnb.lottie.model.content.Mask; 7 import com.airbnb.lottie.model.content.ShapeData; 8 9 import java.util.ArrayList; 10 import java.util.List; 11 12 public class MaskKeyframeAnimation { 13 private final List<BaseKeyframeAnimation<ShapeData, Path>> maskAnimations; 14 private final List<BaseKeyframeAnimation<Integer, Integer>> opacityAnimations; 15 private final List<Mask> masks; 16 MaskKeyframeAnimation(List<Mask> masks)17 public MaskKeyframeAnimation(List<Mask> masks) { 18 this.masks = masks; 19 this.maskAnimations = new ArrayList<>(masks.size()); 20 this.opacityAnimations = new ArrayList<>(masks.size()); 21 for (int i = 0; i < masks.size(); i++) { 22 this.maskAnimations.add(masks.get(i).getMaskPath().createAnimation()); 23 AnimatableIntegerValue opacity = masks.get(i).getOpacity(); 24 opacityAnimations.add(opacity.createAnimation()); 25 } 26 } 27 getMasks()28 public List<Mask> getMasks() { 29 return masks; 30 } 31 getMaskAnimations()32 public List<BaseKeyframeAnimation<ShapeData, Path>> getMaskAnimations() { 33 return maskAnimations; 34 } 35 getOpacityAnimations()36 public List<BaseKeyframeAnimation<Integer, Integer>> getOpacityAnimations() { 37 return opacityAnimations; 38 } 39 } 40