protected override void onDraw (Canvas canvas) { canvas.drawColor (Color.WHITE); canvas.translate (10, 10); canvas.save (); for (int i = 0; i < N; i++) { setSrcR (i); drawSrcR (canvas, i); canvas.translate (mSrcR.width () + 15, 0); } canvas.restore (); canvas.translate (0, 100); for (int j = 0; j < sFits.Length; j++) { canvas.save (); for (int i = 0; i < N; i++) { drawFit (canvas, i, sFits [j]); canvas.translate (mDstR.width () + 8, 0); } canvas.drawText (sFitLabels [j], 0, HEIGHT * 2 / 3, mLabelPaint); canvas.restore (); canvas.translate (0, 80); } }
protected override void onDraw (Canvas canvas) { canvas.drawColor (Color.WHITE); canvas.save (); canvas.translate (10, 10); // translate (1 point) doDraw (canvas, new float[] { 0, 0 }, new float[] { 5, 5 }); canvas.restore (); canvas.save (); canvas.translate (160, 10); // rotate/uniform-scale (2 points) doDraw (canvas, new float[] { 32, 32, 64, 32 }, new float[] { 32, 32, 64, 48 }); canvas.restore (); canvas.save (); canvas.translate (10, 110); // rotate/skew (3 points) doDraw (canvas, new float[] { 0, 0, 64, 0, 0, 64 }, new float[] { 0, 0, 96, 0, 24, 64 }); canvas.restore (); canvas.save (); canvas.translate (160, 110); // perspective (4 points) doDraw (canvas, new float[] { 0, 0, 64, 0, 64, 64, 0, 64 }, new float[] { 0, 0, 96, 0, 64, 96, 0, 64 }); canvas.restore (); }
protected override void onDraw (Canvas canvas) { canvas.drawColor (Color.GRAY); canvas.save (); canvas.translate (80, 5); drawOriginalRects (canvas, 0xFF); canvas.restore (); mPaint.setStyle (Paint.Style.FILL); canvas.save (); canvas.translate (0, 140); drawRgn (canvas, Color.RED, "Union", Region.Op.UNION); canvas.restore (); canvas.save (); canvas.translate (0, 280); drawRgn (canvas, Color.BLUE, "Xor", Region.Op.XOR); canvas.restore (); canvas.save (); canvas.translate (160, 140); drawRgn (canvas, Color.GREEN, "Difference", Region.Op.DIFFERENCE); canvas.restore (); canvas.save (); canvas.translate (160, 280); drawRgn (canvas, Color.WHITE, "Intersect", Region.Op.INTERSECT); canvas.restore (); }
void showPath (Canvas canvas, int x, int y, Path.FillType ft, Paint paint) { canvas.save (); canvas.translate (x, y); canvas.clipRect (0, 0, 120, 120); canvas.drawColor (Color.WHITE); mPath.setFillType (ft); canvas.drawPath (mPath, paint); canvas.restore (); }
void drawFit (Canvas canvas, int index, Matrix.ScaleToFit stf) { canvas.save (); setSrcR (index); mMatrix.setRectToRect (mSrcR, mDstR, stf); canvas.concat (mMatrix); drawSrcR (canvas, index); canvas.restore (); canvas.drawRect (mDstR, mHairPaint); }
protected override void onDraw (Canvas canvas) { canvas.drawColor (unchecked((int)0xFFCCCCCC)); canvas.save (); canvas.concat (mMatrix); canvas.drawVertices (Canvas.VertexMode.TRIANGLE_FAN, 10, mVerts, 0, mTexs, 0, null, 0, null, 0, 0, mPaint); canvas.translate (0, 240); canvas.drawVertices (Canvas.VertexMode.TRIANGLE_FAN, 10, mVerts, 0, mTexs, 0, null, 0, mIndices, 0, 6, mPaint); canvas.restore (); }
protected override void onDraw (Canvas canvas) { canvas.drawColor (Color.WHITE); mDrawable.setBounds (mRect); float r = 16; canvas.save (); canvas.translate (10, 10); mDrawable.setGradientType (GradientDrawable.LINEAR_GRADIENT); setCornerRadii (mDrawable, r, r, 0, 0); mDrawable.draw (canvas); canvas.restore (); canvas.save (); canvas.translate (10 + mRect.width () + 10, 10); mDrawable.setGradientType (GradientDrawable.RADIAL_GRADIENT); setCornerRadii (mDrawable, 0, 0, r, r); mDrawable.draw (canvas); canvas.restore (); canvas.translate (0, mRect.height () + 10); canvas.save (); canvas.translate (10, 10); mDrawable.setGradientType (GradientDrawable.SWEEP_GRADIENT); setCornerRadii (mDrawable, 0, r, r, 0); mDrawable.draw (canvas); canvas.restore (); canvas.save (); canvas.translate (10 + mRect.width () + 10, 10); mDrawable.setGradientType (GradientDrawable.LINEAR_GRADIENT); setCornerRadii (mDrawable, r, 0, 0, r); mDrawable.draw (canvas); canvas.restore (); canvas.translate (0, mRect.height () + 10); canvas.save (); canvas.translate (10, 10); mDrawable.setGradientType (GradientDrawable.RADIAL_GRADIENT); setCornerRadii (mDrawable, r, 0, r, 0); mDrawable.draw (canvas); canvas.restore (); canvas.save (); canvas.translate (10 + mRect.width () + 10, 10); mDrawable.setGradientType (GradientDrawable.SWEEP_GRADIENT); setCornerRadii (mDrawable, 0, r, 0, r); mDrawable.draw (canvas); canvas.restore (); }
protected override void onDraw (Canvas canvas) { canvas.drawColor (unchecked((int)0xFFDDDDDD)); canvas.save (); Paint paint = new Paint (); paint.setColor (Color.BLUE); MaskFilter mf = new BlurMaskFilter (128, BlurMaskFilter.Blur.NORMAL); paint.setMaskFilter (mf); mf.Dispose (); canvas.translate (200, 200); canvas.drawCircle (100, 100, 200, paint); canvas.restore (); paint.Dispose (); }
protected override void onDraw (Canvas canvas) { canvas.drawColor (Color.GRAY); canvas.save (); canvas.translate (10, 10); drawScene (canvas); canvas.restore (); canvas.save (); canvas.translate (160, 10); canvas.clipRect (10, 10, 90, 90); canvas.clipRect (30, 30, 70, 70, Region.Op.DIFFERENCE); drawScene (canvas); canvas.restore (); canvas.save (); canvas.translate (10, 160); mPath.reset (); canvas.clipPath (mPath); // makes the clip empty mPath.addCircle (50, 50, 50, Path.Direction.CCW); canvas.clipPath (mPath, Region.Op.REPLACE); drawScene (canvas); canvas.restore (); canvas.save (); canvas.translate (160, 160); canvas.clipRect (0, 0, 60, 60); canvas.clipRect (40, 40, 100, 100, Region.Op.UNION); drawScene (canvas); canvas.restore (); canvas.save (); canvas.translate (10, 310); canvas.clipRect (0, 0, 60, 60); canvas.clipRect (40, 40, 100, 100, Region.Op.XOR); drawScene (canvas); canvas.restore (); canvas.save (); canvas.translate (160, 310); canvas.clipRect (0, 0, 60, 60); canvas.clipRect (40, 40, 100, 100, Region.Op.REVERSE_DIFFERENCE); drawScene (canvas); canvas.restore (); }
void doDraw (Canvas canvas, float[] src, float[] dst) { canvas.save (); mMatrix.setPolyToPoly (src, 0, dst, 0, src.Length >> 1); canvas.concat (mMatrix); mPaint.setColor (Color.GRAY); mPaint.setStyle (Paint.Style.STROKE); canvas.drawRect (0, 0, 64, 64, mPaint); canvas.drawLine (0, 0, 64, 64, mPaint); canvas.drawLine (0, 64, 64, 0, mPaint); mPaint.setColor (Color.RED); mPaint.setStyle (Paint.Style.FILL); // how to draw the text center on our square // centering in X is easy... use alignment (and X at midpoint) float x = 64 / 2; // centering in Y, we need to measure ascent/descent first float y = 64 / 2 - (mFontMetrics.ascent + mFontMetrics.descent) / 2; canvas.drawText (src.Length / 2 + "", x, y, mPaint); canvas.restore (); }
protected override void onDraw (Canvas canvas) { canvas.drawColor (unchecked((int)0xFFDDDDDD)); test_alphagradients (canvas); RectF r = new RectF (0, 0, 100, 100); Paint paint = new Paint (); paint.setDither (true); canvas.save (); canvas.translate (20, 100); Shader.TileMode[] modes = { Shader.TileMode.CLAMP, Shader.TileMode.MIRROR, Shader.TileMode.CLAMP }; foreach (Shader.TileMode tile in modes) { canvas.save (); foreach (GradData data in Grads) { canvas.save (); foreach (GradMaker maker in GradMakers) { using (Shader shader = maker(r, data, tile)) paint.setShader (shader); canvas.drawRect (r, paint); canvas.translate (0, 120); } canvas.restore (); canvas.translate (120, 0); } canvas.translate (Grads.Length * 120, 0); } canvas.restore (); canvas.translate (0, 370); }