package cutin.sample.animation; import java.util.Timer; import java.util.TimerTask; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapShader; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Shader; import android.view.View; import com.garlicg.cutinlib.CutinService; public class PatternsCutin extends CutinService{ @Override protected View create() { return new SampleView(this); } @Override protected void destroy() { } @Override protected void start(Intent arg0, int arg1, int arg2) { Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { finishCutin(); } }, 2000); } private static class SampleView extends View { private final Shader mShader2; private final Paint mPaint; private Matrix mMatrix = new Matrix(); private float mDistance; public SampleView(Context context) { super(context); setFocusable(true); mShader2 = new BitmapShader(makeBitmap2(), Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); mPaint = new Paint(); mPaint.setShader(mShader2); } private Bitmap makeBitmap2() { Bitmap bm = Bitmap.createBitmap(64, 64, Bitmap.Config.ARGB_4444); Canvas c = new Canvas(bm); Paint p = new Paint(Paint.ANTI_ALIAS_FLAG); p.setColor(Color.GREEN); p.setAlpha(0xCC); c.drawCircle(32, 32, 27, p); return bm; } @Override protected void onDraw(Canvas canvas) { mMatrix.setTranslate(mDistance+=10,mDistance); mShader2.setLocalMatrix(mMatrix); canvas.drawPaint(mPaint); invalidate(); } } }