package tk.zielony.carbonsamples.feature;
import android.animation.ValueAnimator;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Animation;
import carbon.widget.ImageView;
import tk.zielony.carbonsamples.R;
import tk.zielony.carbonsamples.Samples;
import tk.zielony.carbonsamples.SamplesActivity;
import tk.zielony.randomdata.common.DrawableImageGenerator;
public class LargeShadowActivity extends SamplesActivity {
ValueAnimator animator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_largeshadow);
Samples.initToolbar(this, getString(R.string.largeShadowActivity_title));
final View view = findViewById(R.id.layout);
View parent = (View) view.getParent();
int margin = getResources().getDimensionPixelSize(R.dimen.carbon_margin);
ImageView imageView = (ImageView) findViewById(R.id.image);
imageView.setImageDrawable(new DrawableImageGenerator(this).next());
animator = ValueAnimator.ofFloat(0.2f, 1);
animator.setInterpolator(new AccelerateDecelerateInterpolator());
animator.setRepeatCount(Animation.INFINITE);
animator.setRepeatMode(ValueAnimator.REVERSE);
animator.setDuration(2000);
animator.addUpdateListener(valueAnimator -> {
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
layoutParams.width = (int) ((float) valueAnimator.getAnimatedValue() * (parent.getWidth() - margin * 2));
layoutParams.height = (int) ((float) valueAnimator.getAnimatedValue() * (parent.getHeight() - margin * 2));
view.setLayoutParams(layoutParams);
((View) view.getParent()).postInvalidate();
});
animator.start();
}
}