From 25aeca505d927fd6d693f54b243603a2339c4f10 Mon Sep 17 00:00:00 2001 From: Ozodrukh Date: Sat, 30 May 2015 22:11:50 +0500 Subject: [PATCH] 3rd sample --- app/src/main/AndroidManifest.xml | 1 + .../circualrevealsample/MainActivity.java | 15 +++-- .../circualrevealsample/Sample2Activity.java | 2 +- .../circualrevealsample/Sample3Activity.java | 57 +++++++++++++++++++ app/src/main/res/layout/activity_sample_3.xml | 47 +++++++++++++++ app/src/main/res/menu/menu_main.xml | 5 ++ app/src/main/res/values/styles.xml | 2 - 7 files changed, 122 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/io/codetail/circualrevealsample/Sample3Activity.java create mode 100644 app/src/main/res/layout/activity_sample_3.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 152ac52..c5f0769 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,6 +18,7 @@ + diff --git a/app/src/main/java/io/codetail/circualrevealsample/MainActivity.java b/app/src/main/java/io/codetail/circualrevealsample/MainActivity.java index 3205047..f8f9997 100644 --- a/app/src/main/java/io/codetail/circualrevealsample/MainActivity.java +++ b/app/src/main/java/io/codetail/circualrevealsample/MainActivity.java @@ -324,12 +324,19 @@ public boolean onCreateOptionsMenu(Menu menu) { @Override public boolean onOptionsItemSelected(MenuItem item) { + Intent intent = null; + switch (item.getItemId()){ case R.id.sampl2: - Intent intent = new Intent(this, Sample2Activity.class); - startActivity(intent); - return true; + intent = new Intent(this, Sample2Activity.class); + break; + + case R.id.sampl3: + intent = new Intent(this, Sample3Activity.class); + break; } - return super.onOptionsItemSelected(item); + + startActivity(intent); + return intent != null; } } diff --git a/app/src/main/java/io/codetail/circualrevealsample/Sample2Activity.java b/app/src/main/java/io/codetail/circualrevealsample/Sample2Activity.java index 369e10b..37bf655 100644 --- a/app/src/main/java/io/codetail/circualrevealsample/Sample2Activity.java +++ b/app/src/main/java/io/codetail/circualrevealsample/Sample2Activity.java @@ -132,7 +132,7 @@ interface Creation{ SupportAnimator create(View view, Rect bounds); } - static float hypo(float a, float b){ + public static float hypo(float a, float b){ return (float) Math.sqrt( Math.pow(a, 2) + Math.pow(b, 2) ); } diff --git a/app/src/main/java/io/codetail/circualrevealsample/Sample3Activity.java b/app/src/main/java/io/codetail/circualrevealsample/Sample3Activity.java new file mode 100644 index 0000000..607a040 --- /dev/null +++ b/app/src/main/java/io/codetail/circualrevealsample/Sample3Activity.java @@ -0,0 +1,57 @@ +package io.codetail.circualrevealsample; + +import android.graphics.Rect; +import android.os.Build; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.view.View; +import android.view.ViewTreeObserver; +import android.view.animation.AccelerateDecelerateInterpolator; + +import io.codetail.animation.SupportAnimator; +import io.codetail.animation.ViewAnimationUtils; + +public class Sample3Activity extends AppCompatActivity + implements ViewTreeObserver.OnGlobalLayoutListener{ + + private CardViewPlus mContentView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_sample_3); + + mContentView = (CardViewPlus) findViewById(R.id.content); + + getViewTreeObserver().addOnGlobalLayoutListener(this); + } + + protected View getRootView(){ + return mContentView; + } + + protected ViewTreeObserver getViewTreeObserver(){ + return getRootView().getViewTreeObserver(); + } + + protected void startRevealTransition(){ + final Rect bounds = new Rect(); + getRootView().getHitRect(bounds); + SupportAnimator animator = ViewAnimationUtils.createCircularReveal(getRootView(), + bounds.right, bounds.bottom, 0, Sample2Activity.hypo(bounds.height(), bounds.width())); + animator.setDuration(1000); + animator.setInterpolator(new AccelerateDecelerateInterpolator()); + animator.start(); + } + + @Override + public void onGlobalLayout() { + if(Build.VERSION.SDK_INT >= 16) { + getViewTreeObserver().removeOnGlobalLayoutListener(this); + }else{ + getViewTreeObserver().removeGlobalOnLayoutListener(this); + } + + startRevealTransition(); + } +} diff --git a/app/src/main/res/layout/activity_sample_3.xml b/app/src/main/res/layout/activity_sample_3.xml new file mode 100644 index 0000000..8006a41 --- /dev/null +++ b/app/src/main/res/layout/activity_sample_3.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml index cb7857f..1d134e1 100644 --- a/app/src/main/res/menu/menu_main.xml +++ b/app/src/main/res/menu/menu_main.xml @@ -6,4 +6,9 @@ android:title="Sample2" android:orderInCategory="100" app:showAsAction="never" /> + + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 1098e6a..c7c9458 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -5,8 +5,6 @@ - -