package com.lgvalle.material_animations; import android.content.Intent; import android.databinding.DataBindingUtil; import android.os.Bundle; import android.transition.Fade; import android.transition.TransitionManager; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import com.lgvalle.material_animations.databinding.ActivityAnimations1Binding; public class AnimationsActivity1 extends BaseDetailActivity { private ImageView square; private ViewGroup viewRoot; private boolean sizeChanged; private int savedWidth; private boolean positionChanged; private Sample sample; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); bindData(); setupWindowAnimations(); setupLayout(); setupToolbar(); } private void setupWindowAnimations() { getWindow().setReenterTransition(new Fade()); } private void bindData() { ActivityAnimations1Binding binding = DataBindingUtil.setContentView(this, R.layout.activity_animations1); sample = (Sample) getIntent().getExtras().getSerializable(EXTRA_SAMPLE); binding.setAnimationsSample(sample); } private void setupLayout() { square = (ImageView) findViewById(R.id.square_green); viewRoot = (ViewGroup) findViewById(R.id.sample3_root); findViewById(R.id.sample3_button1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { changeLayout(); } }); findViewById(R.id.sample3_button2).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { changePosition(); } }); findViewById(R.id.sample3_button3).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(AnimationsActivity1.this, AnimationsActivity2.class); i.putExtra(EXTRA_SAMPLE, sample); transitionTo(i); } }); } private void changeLayout() { TransitionManager.beginDelayedTransition(viewRoot); ViewGroup.LayoutParams params = square.getLayoutParams(); if (sizeChanged) { params.width = savedWidth; } else { savedWidth = params.width; params.width = 200; } sizeChanged = !sizeChanged; square.setLayoutParams(params); } private void changePosition() { TransitionManager.beginDelayedTransition(viewRoot); LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) square.getLayoutParams(); if (positionChanged) { lp.gravity = Gravity.CENTER; } else { lp.gravity = Gravity.LEFT; } positionChanged = !positionChanged; square.setLayoutParams(lp); } }