restore() public method

public restore ( ) : void
return void
Exemplo n.º 1
0
		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 ();
		}
Exemplo n.º 2
0
		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 ();
		}
Exemplo n.º 3
0
		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);
			}
		}
Exemplo n.º 4
0
		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 ();
		}
Exemplo n.º 5
0
		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);
		}
Exemplo n.º 6
0
		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 ();
		}
Exemplo n.º 7
0
		protected override void onDraw (Canvas canvas)
		{
			canvas.drawColor (Color.WHITE);

			canvas.translate (10, 10);

			canvas.saveLayerAlpha (0, 0, 200, 200, 0x88, LAYER_FLAGS);

			mPaint.setColor (Color.RED);
			canvas.drawCircle (75, 75, 75, mPaint);
			mPaint.setColor (Color.BLUE);
			canvas.drawCircle (125, 125, 75, mPaint);

			canvas.restore ();
		}
Exemplo n.º 8
0
		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 ();
		}
Exemplo n.º 9
0
		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 ();
		}
Exemplo n.º 10
0
		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 ();
		}
Exemplo n.º 11
0
		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 ();
		}
Exemplo n.º 12
0
		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);
		}