diff options
author | Andrew Sapperstein <asapperstein@google.com> | 2012-07-24 15:00:45 -0700 |
---|---|---|
committer | Andrew Sapperstein <asapperstein@google.com> | 2012-07-24 15:01:10 -0700 |
commit | 749602e643c76f981e1db26198876d103008b5e7 (patch) | |
tree | 9ebaf2d79f29adde68279db26c1c4b7d98c935dd /photoviewer/src | |
parent | d19540fb7139fc0baba3b55260a6aabdb029c831 (diff) | |
download | android_frameworks_ex-749602e643c76f981e1db26198876d103008b5e7.tar.gz android_frameworks_ex-749602e643c76f981e1db26198876d103008b5e7.tar.bz2 android_frameworks_ex-749602e643c76f981e1db26198876d103008b5e7.zip |
Added transitions to photo viewer.
Change-Id: Ie3c9a36019e161cf0f7b32cfbeba4749ef5ccfd8
Diffstat (limited to 'photoviewer/src')
-rw-r--r-- | photoviewer/src/com/android/ex/photo/PhotoViewPager.java | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/photoviewer/src/com/android/ex/photo/PhotoViewPager.java b/photoviewer/src/com/android/ex/photo/PhotoViewPager.java index 41ca0bf..5945239 100644 --- a/photoviewer/src/com/android/ex/photo/PhotoViewPager.java +++ b/photoviewer/src/com/android/ex/photo/PhotoViewPager.java @@ -22,6 +22,7 @@ import android.support.v4.view.MotionEventCompat; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.view.MotionEvent; +import android.view.View; /** * View pager for photo view fragments. Define our own class so we can specify the @@ -37,7 +38,7 @@ public class PhotoViewPager extends ViewPager { * Provides an ability to intercept touch events. * <p> * {@link ViewPager} intercepts all touch events and we need to be able to override this - * behaviour. Instead, we could perform a similar function by declaring a custom + * behavior. Instead, we could perform a similar function by declaring a custom * {@link ViewGroup} to contain the pager and intercept touch events at a higher level. */ public static interface OnInterceptTouchListener { @@ -63,10 +64,34 @@ public class PhotoViewPager extends ViewPager { public PhotoViewPager(Context context) { super(context); + initialize(); } public PhotoViewPager(Context context, AttributeSet attrs) { super(context, attrs); + initialize(); + } + + private void initialize() { + // Set the page transformer to perform the transition animation + // for each page in the view. + setPageTransformer(true, new PageTransformer() { + @Override + public void transformPage(View page, float position) { + if (position < 0) { + page.setTranslationX(0); + page.setAlpha(1.f); + page.setScaleX(1); + page.setScaleY(1); + } else { + page.setTranslationX(-position * page.getWidth()); + page.setAlpha(Math.max(0,1.f - position)); + final float scale = Math.max(0, 1.f - position * 0.3f); + page.setScaleX(scale); + page.setScaleY(scale); + } + } + }); } /** |