package com.marshalchen.common.demoofui.materialAnimations;
import android.annotation.TargetApi;
import android.app.ActivityOptions;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.transition.Explode;
import android.transition.Fade;
import android.transition.TransitionManager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import com.marshalchen.common.demoofui.R;
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public class MaterialAnimationActivity extends ActionBarActivity {
private ViewGroup sceneRoot;
private View squareRed;
private View squareBlue;
private View squareGreen;
private View squareOrange;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.material_animation_activity_main);
setupWindowAnimations();
setupLayout();
}
private void setupWindowAnimations() {
Explode explode = new Explode();
explode.setDuration(2000);
getWindow().setExitTransition(explode);
Fade fade = new Fade();
getWindow().setReenterTransition(fade);
}
private void setupLayout() {
sceneRoot = (LinearLayout) findViewById(R.id.scene_root);
squareRed = findViewById(R.id.square_red);
squareRed.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MaterialAnimationActivity.this, DetailActivity1.class);
ActivityOptions transitionActivityOptions = ActivityOptions.makeSceneTransitionAnimation(MaterialAnimationActivity.this);
startActivity(i, transitionActivityOptions.toBundle());
}
});
squareBlue = findViewById(R.id.square_blue);
squareBlue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MaterialAnimationActivity.this, DetailActivity2.class);
View sharedView = squareBlue;
String transitionName = "square_blue_name";
ActivityOptions transitionActivityOptions = ActivityOptions.makeSceneTransitionAnimation(MaterialAnimationActivity.this, sharedView, transitionName);
startActivity(i, transitionActivityOptions.toBundle());
}
});
squareGreen = findViewById(R.id.square_green);
squareGreen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TransitionManager.beginDelayedTransition(sceneRoot);
setViewWidth(squareRed, 500);
setViewWidth(squareBlue, 500);
setViewWidth(squareGreen, 500);
setViewWidth(squareOrange, 500);
}
});
squareOrange = findViewById(R.id.square_orange);
squareOrange.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MaterialAnimationActivity.this, DetailActivity3.class);
View sharedView = squareOrange;
String transitionName = "square_orange_name";
ActivityOptions transitionActivityOptions = ActivityOptions.makeSceneTransitionAnimation(MaterialAnimationActivity.this, sharedView, transitionName);
startActivity(i, transitionActivityOptions.toBundle());
}
});
}
private void setViewWidth(View view, int x) {
ViewGroup.LayoutParams params = view.getLayoutParams();
params.width = x;
view.setLayoutParams(params);
}
}