Back to project page SlidingMenuLibrary.
The source code is released under:
Apache License
If you think the Android project SlidingMenuLibrary listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.jeremyfeinstein.slidingmenu.lib; //from w w w . j av a 2s. co m import android.graphics.Canvas; import android.view.animation.Interpolator; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu.CanvasTransformer; public class CanvasTransformerBuilder { private CanvasTransformer mTrans; private static Interpolator lin = new Interpolator() { public float getInterpolation(float t) { return t; } }; private void initTransformer() { if (mTrans == null) mTrans = new CanvasTransformer() { public void transformCanvas(Canvas canvas, float percentOpen) { } }; } public CanvasTransformer zoom(final int openedX, final int closedX, final int openedY, final int closedY, final int px, final int py) { return zoom(openedX, closedX, openedY, closedY, px, py, lin); } public CanvasTransformer zoom(final int openedX, final int closedX, final int openedY, final int closedY, final int px, final int py, final Interpolator interp) { initTransformer(); mTrans = new CanvasTransformer() { public void transformCanvas(Canvas canvas, float percentOpen) { mTrans.transformCanvas(canvas, percentOpen); float f = interp.getInterpolation(percentOpen); canvas.scale((openedX - closedX) * f + closedX, (openedY - closedY) * f + closedY, px, py); } }; return mTrans; } public CanvasTransformer rotate(final int openedDeg, final int closedDeg, final int px, final int py) { return rotate(openedDeg, closedDeg, px, py, lin); } public CanvasTransformer rotate(final int openedDeg, final int closedDeg, final int px, final int py, final Interpolator interp) { initTransformer(); mTrans = new CanvasTransformer() { public void transformCanvas(Canvas canvas, float percentOpen) { mTrans.transformCanvas(canvas, percentOpen); float f = interp.getInterpolation(percentOpen); canvas.rotate((openedDeg - closedDeg) * f + closedDeg, px, py); } }; return mTrans; } public CanvasTransformer translate(final int openedX, final int closedX, final int openedY, final int closedY) { return translate(openedX, closedX, openedY, closedY, lin); } public CanvasTransformer translate(final int openedX, final int closedX, final int openedY, final int closedY, final Interpolator interp) { initTransformer(); mTrans = new CanvasTransformer() { public void transformCanvas(Canvas canvas, float percentOpen) { mTrans.transformCanvas(canvas, percentOpen); float f = interp.getInterpolation(percentOpen); canvas.translate((openedX - closedX) * f + closedX, (openedY - closedY) * f + closedY); } }; return mTrans; } public CanvasTransformer concatTransformer(final CanvasTransformer t) { initTransformer(); mTrans = new CanvasTransformer() { public void transformCanvas(Canvas canvas, float percentOpen) { mTrans.transformCanvas(canvas, percentOpen); t.transformCanvas(canvas, percentOpen); } }; return mTrans; } }