content: package com.airbnb.lottiesplash;
  
  import android.content.Context;
  import android.graphics.Color;
  import android.graphics.drawable.ColorDrawable;
  import android.support.annotation.Nullable;
  import android.util.AttributeSet;
  import android.view.View;
  import android.widget.FrameLayout;
  
  import com.airbnb.lottie.LottieAnimationView;
  import com.airbnb.lottie.LottieComposition;
  import com.airbnb.lottie.OnCompositionLoadedListener;
  
  import java.util.ArrayList;
  import java.util.List;
  
  public class LottieFontViewGroup extends FrameLayout {
    private final List<LottieAnimationView> views = new ArrayList<>();
  
    @Nullable
    private LottieAnimationView cursorView;
  
    public LottieFontViewGroup(Context context) {
      super(context);
      init();
    }
  
    public LottieFontViewGroup(Context context, AttributeSet attrs) {
      super(context, attrs);
      init();
    }
  
    public LottieFontViewGroup(Context context, AttributeSet attrs, int defStyleAttr) {
      super(context, attrs, defStyleAttr);
      init();
    }
  
    private int textSize;
  
    private void init() {
      final float density = getContext().getResources().getDisplayMetrics().density;
      textSize = (int)(density*120);
  
      for(int x=0; x<5; x++) {
        cursorView = new LottieAnimationView(getContext());
        cursorView.setLayoutParams(new LayoutParams(
            textSize,
            textSize
        ));
        addView(cursorView);
        views.add(cursorView);
      }
  
  
  
      this.postDelayed(new Runnable() {
        @Override public void run() {
          LottieComposition.Factory.fromAssetFileName(getContext(), "A.json",
              new OnCompositionLoadedListener() {
                @Override
                public void onCompositionLoaded(LottieComposition composition) {
                    views.get(0).setBackgroundDrawable(new ColorDrawable(0x112233));
                  views.get(0).setComposition(composition);
                  views.get(0).playAnimation();
                }
              });
        }
      },300);
  
      this.postDelayed(new Runnable() {
        @Override public void run() {
          LottieComposition.Factory.fromAssetFileName(getContext(), "T.json",
              new OnCompositionLoadedListener() {
                @Override
                public void onCompositionLoaded(LottieComposition composition) {
                  views.get(1).setComposition(composition);
                  views.get(1).playAnimation();
                }
              });
        }
      },300);
  
      this.postDelayed(new Runnable() {
        @Override public void run() {
          LottieComposition.Factory.fromAssetFileName(getContext(), "L.json",
              new OnCompositionLoadedListener() {
                @Override
                public void onCompositionLoaded(LottieComposition composition) {
                  views.get(2).setComposition(composition);
                  views.get(2).playAnimation();
                }
              });
        }
      },300);
  
      this.postDelayed(new Runnable() {
        @Override public void run() {
          LottieComposition.Factory.fromAssetFileName(getContext(), "A.json",
              new OnCompositionLoadedListener() {
                @Override
                public void onCompositionLoaded(LottieComposition composition) {
                  views.get(3).setComposition(composition);
                  views.get(3).playAnimation();
                }
              });
        }
      },300);
  
      this.postDelayed(new Runnable() {
        @Override public void run() {
          LottieComposition.Factory.fromAssetFileName(getContext(), "S.json",
              new OnCompositionLoadedListener() {
                @Override
                public void onCompositionLoaded(LottieComposition composition) {
                  views.get(4).setComposition(composition);
                  views.get(4).playAnimation();
                }
              });
        }
      },300);
  
    }
  
    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
      int currentX = (getWidth()-textSize/2*5)/2;
      int currentY = getPaddingLeft();
  
      for (int i = 0; i < views.size(); i++) {
        View view = views.get(i);
        view.layout(currentX, currentY, currentX + view.getMeasuredWidth()/2,
            currentY + view.getMeasuredHeight());
            currentX += view.getMeasuredWidth()/2;
      }
    }
  }
  