package com.halzhang.android.example.meterialdesignexample; import android.animation.Animator; import android.annotation.TargetApi; import android.app.ActivityOptions; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.transition.Slide; import android.transition.TransitionInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewAnimationUtils; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.ListView; public class MainActivity extends AppCompatActivity { private Button button; private DrawerLayout mDrawerLayout; private ListView mDrawerList; private String[] mFeatureTitles; private ActionBarDrawerToggle mDrawerToggle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setupWindowAnimation(); setupViews(); } private void setupViews() { mFeatureTitles = getResources().getStringArray(R.array.features); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.left_drawer); mDrawerList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, mFeatureTitles)); button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // View myView = findViewById(R.id.image); // revealShow(myView); // revealShow(findViewById(R.id.reveal)); startTransitionActivity(); } }); findViewById(R.id.btn_recycler).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { RecyclerViewActivity.start(getApplicationContext()); } }); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) private void setupWindowAnimation() { Slide slideTransition = (Slide) TransitionInflater.from(getApplicationContext()).inflateTransition(R.transition.slide_left);// new Slide(); // slideTransition.setSlideEdge(Gravity.LEFT); // slideTransition.setDuration(300); getWindow().setReenterTransition(slideTransition); getWindow().setExitTransition(slideTransition); } /** * visible a view with reveal animation * * @param view previously invisible view */ @TargetApi(Build.VERSION_CODES.LOLLIPOP) private void revealView(View view) { // previously invisible view // get the center for the clipping circle int cx = (view.getLeft() + view.getRight()) / 2; int cy = view.getBottom();// (view.getTop() + view.getBottom()) / 2; // get the final radius for the clipping circle int finalRadius = Math.max(view.getWidth(), view.getHeight()); // create the animator for this view (the start radius is zero) Animator anim = ViewAnimationUtils.createCircularReveal(view, cx, cy, 0, finalRadius); // make the view visible and start the animation view.setVisibility(View.VISIBLE); anim.start(); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) private void startTransitionActivity() { ImageView androidRobotView = (ImageView) findViewById(R.id.image); startActivity(new Intent(this, TransitionActivity.class), ActivityOptions.makeSceneTransitionAnimation(this, androidRobotView, "robot").toBundle()); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }