package com.wakehao.transitionexample; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.transition.TransitionInflater; import android.transition.TransitionManager; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import de.hdodenhof.circleimageview.CircleImageView; public class BeginDelayedActivity extends AppCompatActivity implements View.OnClickListener { private CircleImageView cuteboy,cutegirl,hxy,lly; private boolean isImageBigger; private ViewGroup sceneRoot; private int primarySize; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_begin_delayed); initToolBar(); initView(); } @Override public void onClick(View v) { //start scene 是当前的scene TransitionManager.beginDelayedTransition(sceneRoot, TransitionInflater.from(this).inflateTransition(R.transition.explode_and_changebounds)); //next scene 此时通过代码已改变了scene statue changeScene(v); } private void changeScene(View view) { changeSize(view); changeVisibility(cuteboy,cutegirl,hxy,lly); view.setVisibility(View.VISIBLE); } /** * view的宽高1.5倍和原尺寸大小切换 * 配合ChangeBounds实现缩放效果 * @param view */ private void changeSize(View view) { isImageBigger=!isImageBigger; ViewGroup.LayoutParams layoutParams = view.getLayoutParams(); if(isImageBigger){ layoutParams.width=(int)(1.5*primarySize); layoutParams.height=(int)(1.5*primarySize); }else { layoutParams.width=primarySize; layoutParams.height=primarySize; } view.setLayoutParams(layoutParams); } /** * VISIBLE和INVISIBLE状态切换 * @param views */ private void changeVisibility(View ...views){ for (View view:views){ view.setVisibility(view.getVisibility()==View.VISIBLE?View.INVISIBLE:View.VISIBLE); } } private void initView() { sceneRoot = (ViewGroup) findViewById(R.id.scene_root); cuteboy= (CircleImageView) findViewById(R.id.cuteboy); cutegirl= (CircleImageView) findViewById(R.id.cutegirl); hxy= (CircleImageView) findViewById(R.id.hxy); lly= (CircleImageView) findViewById(R.id.lly); primarySize=cuteboy.getLayoutParams().width; cuteboy.setOnClickListener(this); cutegirl.setOnClickListener(this); hxy.setOnClickListener(this); lly.setOnClickListener(this); } private void initToolBar() { Toolbar toolbar= (Toolbar) findViewById(R.id.toolBar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowTitleEnabled(false); } @Override public boolean onSupportNavigateUp() { onBackPressed(); return true; } }