package com.reactnativenavigation.views.collapsingToolbar; import android.content.Context; import android.widget.FrameLayout; import android.widget.ImageView; import com.facebook.drawee.view.SimpleDraweeView; import com.reactnativenavigation.params.CollapsingTopBarParams; import com.reactnativenavigation.utils.ViewUtils; import com.reactnativenavigation.views.Scrim; import static android.widget.FrameLayout.LayoutParams.MATCH_PARENT; public class CollapsingTopBarBackground extends FrameLayout { public static final float MAX_HEIGHT = ViewUtils.convertDpToPixel(256); private final CollapsingTopBarParams params; private SimpleDraweeView backdrop; private Scrim scrim; public CollapsingTopBarBackground(Context context, CollapsingTopBarParams params) { super(context); this.params = params; setFitsSystemWindows(true); createBackDropImage(); createScrim(); setWillNotDraw(false); } private void createBackDropImage() { backdrop = new SimpleDraweeView(getContext()); setImageSource(); backdrop.setScaleType(ImageView.ScaleType.CENTER_CROP); backdrop.setFitsSystemWindows(true); addView(backdrop, new LayoutParams(MATCH_PARENT, MATCH_PARENT)); } private void setImageSource() { if (params.imageUri != null) { backdrop.setImageURI(params.imageUri); } } private void createScrim() { scrim = new Scrim(getContext(), params.scrimColor, MAX_HEIGHT / 2); addView(scrim); } public void collapse(float collapse) { scrim.collapse(collapse); } }