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);
}
}