//Negativ private Android.Graphics.Bitmap createInverse(Android.Graphics.Bitmap src) { float[] colorMatrix_Negative = { -1.0f, 0, 0, 0, 255, //red 0, -1.0f, 0, 0, 255, //green 0, 0, -1.0f, 0, 255, //blue 0, 0, 0, 1.0f, 0 //alpha }; Android.Graphics.Paint MyPaint_Normal = new Android.Graphics.Paint(); Android.Graphics.Paint MyPaint_Negative = new Android.Graphics.Paint(); Android.Graphics.ColorFilter colorFilter_Negative = new Android.Graphics.ColorMatrixColorFilter(colorMatrix_Negative); MyPaint_Negative.SetColorFilter(colorFilter_Negative); Android.Graphics.Bitmap bitmap = Android.Graphics.Bitmap.CreateBitmap(src.Width, src.Height, Android.Graphics.Bitmap.Config.Argb8888); Android.Graphics.Canvas canvas = new Android.Graphics.Canvas(bitmap); MyPaint_Negative.SetColorFilter(colorFilter_Negative); canvas.DrawBitmap(src, 0, 0, MyPaint_Negative); return(bitmap); return(bitmap); }
public void Capture() { var screenshotPath = Android.OS.Environment.GetExternalStoragePublicDirectory("Pictures").AbsolutePath + Java.IO.File.Separator + "screenshot.png"; var rootView = ((Android.App.Activity)MainActivity.Context).Window.DecorView.RootView; using (var screenshot = Android.Graphics.Bitmap.CreateBitmap( rootView.Width, rootView.Height, Android.Graphics.Bitmap.Config.Argb8888)) { var canvas = new Android.Graphics.Canvas(screenshot); rootView.Draw(canvas); using (var screenshotOutputStream = new System.IO.FileStream( screenshotPath, System.IO.FileMode.Create)) { screenshot.Compress(Android.Graphics.Bitmap.CompressFormat.Png, 90, screenshotOutputStream); screenshotOutputStream.Flush(); screenshotOutputStream.Close(); } } }
protected override void OnDraw(Android.Graphics.Canvas canvas) { canvas.Rotate(-90); canvas.Translate(-Height, 0); base.OnDraw(canvas); }
protected override void OnDraw(Android.Graphics.Canvas canvas) { if (initialized) { DrawFrame(); } }
/// <Docs>The Canvas to which the View is rendered.</Docs> /// <summary> /// Draw the specified canvas. /// </summary> /// <param name="canvas">Canvas.</param> public override void Draw(Android.Graphics.Canvas canvas) { if (Element == null) { base.Draw(canvas); return; } // Draws the background and default android setup. Children will also be redrawn here // base.Draw(canvas); // Set up clipping if (Element.IsClippedToBounds) { canvas.ClipRect(new Android.Graphics.Rect(0, 0, Width, Height)); } // Perform custom drawing from the NGraphics subsystems var ncanvas = new CanvasCanvas(canvas); var rect = new NGraphics.Rect(0, 0, Width, Height); // Fill background ncanvas.FillRectangle(rect, new NGraphics.Color(Element.BackgroundColor.R, Element.BackgroundColor.G, Element.BackgroundColor.B, Element.BackgroundColor.A)); // Custom drawing Element.Draw(ncanvas, rect); // Redraw children - since we might have a composite control containing both children // and custom drawing code, we want children to be drawn last. The reason for this double- // drawing is that the base.Draw(canvas) call will handle background which is needed before // doing NGraphics drawing - but unfortunately it also draws children - which then will // be drawn below NGraphics drawings. base.Draw(canvas); }
protected override void Draw(Canvas canvas, Rect bounds) { int saveCount = canvas.Save(); RectF arcBounds = mCurrentBounds; arcBounds.Set(bounds); //draw bottle mPaint.SetStyle(Paint.Style.Stroke); mPaint.Color = new Color(mBottleColor); canvas.DrawPath(CreateBottlePath(mBottleBounds), mPaint); //draw water mPaint.SetStyle(Paint.Style.FillAndStroke); mPaint.Color = new Color(mWaterColor); canvas.DrawPath(CreateWaterPath(mWaterBounds, mProgress), mPaint); //draw water drop mPaint.SetStyle(Paint.Style.Fill); mPaint.Color = new Color(mWaterColor); foreach (WaterDropHolder waterDropHolder in mWaterDropHolders) { if (waterDropHolder.mNeedDraw) { canvas.DrawCircle(waterDropHolder.mInitX, waterDropHolder.mCurrentY, waterDropHolder.mRadius, mPaint); } } //draw loading text mPaint.Color = new Color(mBottleColor); canvas.DrawText(LOADING_TEXT, mBottleBounds.CenterX() - mLoadingBounds.Width() / 2.0f, mBottleBounds.Bottom + mBottleBounds.Height() * 0.2f, mPaint); canvas.RestoreToCount(saveCount); }
public override bool OnCreateThumbnail(Android.Graphics.Bitmap outBitmap, Android.Graphics.Canvas canvas) { // ライフサイクルメソッド調査 Util.Trace.WriteMethod(); return(base.OnCreateThumbnail(outBitmap, canvas)); }
public Android.Graphics.Canvas GetCanvas() { if (this.canvas == null) { this.canvas = new Android.Graphics.Canvas(this.bmp); } return(this.canvas); }
protected override void OnDraw(Android.Graphics.Canvas canvas) { base.OnDraw(canvas); canvas.Save(); canvas.Translate(_posX, _posY); canvas.Scale(_scaleFactor, _scaleFactor); canvas.Restore(); }
protected override void OnDraw(Android.Graphics.Canvas canvas) { base.OnDraw(canvas); var bounds = formsControl.Bounds; progressView.Layout(System.Convert.ToInt32(formsControl.X), System.Convert.ToInt32(bounds.Y), System.Convert.ToInt32(bounds.Width), System.Convert.ToInt32(bounds.Height)); }
public override void drawProgress(Android.Graphics.Canvas canvas) { float scale = (float)getProgress() / (float)getMaxProgress(); float indicatorHeight = (float)MeasuredHeight * scale; getProgressDrawable().SetBounds(0, 0, MeasuredWidth, (int)indicatorHeight); getProgressDrawable().Draw(canvas); }
protected override void DispatchDraw(Android.Graphics.Canvas canvas) { base.DispatchDraw(canvas); var myNav = (RenderersEServices.CustomNavigationPage) this.Element; ((Activity)Context).ActionBar.SetIcon(ResourceIdFromString(myNav.ImageName)); }
protected override void OnDraw(Android.Graphics.Canvas canvasDroid) { base.OnDraw(canvasDroid); var canvas = new CanvasCanvas(canvasDroid); var rect = new NGraphics.Rect(GetX(), GetY(), Width, Height); this.Draw(canvas, rect); }
protected override void OnDraw(Android.Graphics.Canvas canvas) { if (this.Orientation == Orientation.Vertical) { canvas.Rotate(-90); canvas.Translate(-Height, 0); } base.OnDraw(canvas); }
protected override bool DrawChild(Android.Graphics.Canvas canvas, Android.Views.View child, long drawingTime) { if (child is ImageView) { CustomImage custom = (CustomImage)this.Element; custom.ImgView = (ImageView)child; } return(base.DrawChild(canvas, child, drawingTime)); }
protected override void OnDraw(Android.Graphics.Canvas canvas) { animationOnGoing = false; base.OnDraw(canvas); if (!animationOnGoing && snapNeeded) { snapNeeded = false; handler.PostDelayed(ApplySnappingRule, 100); } }
protected override void OnDraw(Android.Graphics.Canvas canvas) { var sw = new Stopwatch(); sw.Start(); base.OnDraw(canvas); sw.Stop(); TimeToLayoutRequests += sw.ElapsedMilliseconds; LayoutRequested++; }
protected override void DispatchDraw(Android.Graphics.Canvas canvas) { base.DispatchDraw(canvas); // Draw gradients on-top of others if (fadeDrawable != null) { fadeDrawable.Draw(canvas); } }
protected override void Draw(Canvas canvas, Rect bounds) { int saveCount = canvas.Save(); RectF arcBounds = mTempBounds; arcBounds.Set(bounds); mPaint.Alpha = MAX_ALPHA; mPaint.SetStyle(Paint.Style.Stroke); mPaint.Color = new Color(mCurrentColor); if (mSunCoordinateY < mInitSun_MoonCoordinateY) { canvas.DrawCircle(arcBounds.CenterX(), mSunCoordinateY, mSun_MoonRadius, mPaint); } if (mMoonCoordinateY < mInitSun_MoonCoordinateY) { int moonSaveCount = canvas.Save(); canvas.Rotate(mMoonRotation, arcBounds.CenterX(), mMoonCoordinateY); canvas.DrawPath(CreateMoonPath(arcBounds.CenterX(), mMoonCoordinateY), mPaint); canvas.RestoreToCount(moonSaveCount); } for (int i = 0; i < mSunRayCount; i++) { int sunRaySaveCount = canvas.Save(); //rotate 45 degrees can change the direction of 0 degrees to 1:30 clock //-mSunRayRotation means reverse rotation canvas.Rotate(45 - mSunRayRotation + (mIsExpandSunRay ? i : MAX_SUN_RAY_COUNT - i) * DEGREE_360 / MAX_SUN_RAY_COUNT, arcBounds.CenterX(), mSunCoordinateY); canvas.DrawLine(arcBounds.CenterX(), mSunRayStartCoordinateY, arcBounds.CenterX(), mSunRayEndCoordinateY, mPaint); canvas.RestoreToCount(sunRaySaveCount); } if (mShowStar) { if (mStarHolders.Count == 0) { InitStarHolders(arcBounds); } for (int i = 0; i < mStarHolders.Count; i++) { mPaint.SetStyle(Paint.Style.Fill); mPaint.Alpha = mStarHolders[i].mAlpha; canvas.DrawCircle(mStarHolders[i].mCurrentPoint.X, mStarHolders[i].mCurrentPoint.Y, mStarRadius, mPaint); } } canvas.RestoreToCount(saveCount); }
protected override void DispatchDraw(Android.Graphics.Canvas canvas) { var gradients = new Android.Graphics.LinearGradient(0, 0, 0, Height, this.StarColor.ToAndroid(), this.EndColor.ToAndroid(), Android.Graphics.Shader.TileMode.Mirror); var paint = new Android.Graphics.Paint() { Dither = true }; paint.SetShader(gradients); canvas.DrawPaint(paint); base.DispatchDraw(canvas); }
protected override void OnDraw(Android.Graphics.Canvas canvas) { base.OnDraw(canvas); if (_Selected) { canvas.DrawARGB(255, 255, 0, 0); } else { canvas.DrawARGB(255, 0, 255, 0); } }
public static void RenderBishop (RenderTarget c, Color main, Color alternate, Color white, Color black) { SetFillColor (main); SetStrokeColor (black); MoveTo (9f, 36f); AddCurveToPoint (12.39f, 35.03f, 19.11f, 36.43f, 22.5f, 34f); AddCurveToPoint (25.89f, 36.43f, 32.61f, 35.03f, 36f, 36f); AddCurveToPoint (36f, 36f, 37.65f, 36.54f, 39f, 38f); AddCurveToPoint (38.32f, 38.97f, 37.35f, 38.99f, 36f, 38.5f); AddCurveToPoint (32.61f, 37.53f, 25.89f, 38.96f, 22.5f, 37.5f); AddCurveToPoint (19.11f, 38.96f, 12.39f, 37.53f, 9f, 38.5f); AddCurveToPoint (7.646f, 38.99f, 6.677f, 38.97f, 6f, 38f); AddCurveToPoint (7.354f, 36.06f, 9f, 36f, 9f, 36f); ClosePath (); MoveTo (9f, 36f); FillAndStrokePath (); SetFillColor (main); SetStrokeColor (black); MoveTo (15f, 32f); AddCurveToPoint (17.5f, 34.5f, 27.5f, 34.5f, 30f, 32f); AddCurveToPoint (30.5f, 30.5f, 30f, 30f, 30f, 30f); AddCurveToPoint (30f, 27.5f, 27.5f, 26f, 27.5f, 26f); AddCurveToPoint (33f, 24.5f, 33.5f, 14.5f, 22.5f, 10.5f); AddCurveToPoint (11.5f, 14.5f, 12f, 24.5f, 17.5f, 26f); AddCurveToPoint (17.5f, 26f, 15f, 27.5f, 15f, 30f); AddCurveToPoint (15f, 30f, 14.5f, 30.5f, 15f, 32f); ClosePath (); MoveTo (15f, 32f); FillAndStrokePath (); SetFillColor (main); SetStrokeColor (black); MoveTo (25f, 8f); AddCurveToPoint (25f, 9.380712f, 23.88071f, 10.5f, 22.5f, 10.5f); AddCurveToPoint (21.11929f, 10.5f, 20f, 9.380712f, 20f, 8f); AddCurveToPoint (20f, 6.619288f, 21.11929f, 5.5f, 22.5f, 5.5f); AddCurveToPoint (23.88071f, 5.5f, 25f, 6.619288f, 25f, 8f); ClosePath (); MoveTo (25f, 8f); FillAndStrokePath (); SetStrokeColor (alternate); MoveTo (17.5f, 26f); AddLineToPoint (27.5f, 26f); MoveTo (15f, 30f); AddLineToPoint (30f, 30f); MoveTo (22.5f, 15.5f); AddLineToPoint (22.5f, 20.5f); MoveTo (20f, 18f); AddLineToPoint (25f, 18f); StrokePath (); }
public override void Draw(Android.Graphics.Canvas canvas) { base.Draw(canvas); if (_formsControl != null) { var outputSize = new Size(canvas.Width, canvas.Height); var finalCanvas = _formsControl.RenderSvgToCanvas(outputSize, ScreenScale, CreatePlatformImageCanvas); var image = (BitmapImage)finalCanvas.GetImage(); Control.SetImageBitmap(image.Bitmap); } }
protected override void OnDraw(Android.Graphics.Canvas canvas) { base.OnDraw(canvas); for (int i = 0; i < snow_flake_count; i++) { using (var drawable = drawables[i]) { canvas.Save(); canvas.Translate(coords[i][0], coords [i] [1]); drawable.Draw(canvas); canvas.Restore(); } } Invalidate(); }
protected override void DispatchDraw(Android.Graphics.Canvas canvas) { canvas.Save(); if (_scaleFactor == 1.0f) { _posX = 0.0f; _posY = 0.0f; } canvas.Translate(_posX, _posY); canvas.Scale(_scaleFactor, _scaleFactor); base.DispatchDraw(canvas); canvas.Restore(); Invalidate(); }
public override void OnDrawOver(Android.Graphics.Canvas cValue, RecyclerView parent, RecyclerView.State state) { int left = parent.PaddingLeft; int right = parent.Width - parent.PaddingRight; for (int i = 0; i < parent.ChildCount; i++) { View child = parent.GetChildAt(i); var param = (RecyclerView.LayoutParams)child.LayoutParameters; int top = child.Bottom + param.BottomMargin; int bottom = top + divider.IntrinsicHeight; divider.SetBounds(left, top, right, bottom); divider.Draw(cValue); } }
protected override void DispatchDraw(Android.Graphics.Canvas canvas) { base.DispatchDraw(canvas); if (Header == null && Divider != null) { //Drawable.setbounds does not work on pre honeycomb, so you have to do a little work around //for anything pre-HC. if ((int)Build.VERSION.SdkInt < 11) { canvas.ClipRect(0, 0, Width, DividerHeight); } Divider.Draw(canvas); } }
//sepia si prietenii private Android.Graphics.Bitmap createSepia_and_RBG(Android.Graphics.Bitmap src, int choise) { Android.Graphics.ColorMatrix colorMatrix_Sepia = new Android.Graphics.ColorMatrix(); colorMatrix_Sepia.SetSaturation(0); Android.Graphics.ColorMatrix colorScale = new Android.Graphics.ColorMatrix(); if (choise == 1) { colorScale.SetScale(1, 1f, 0.7f, 1); //sepia } else if (choise == 2) { colorScale.SetScale(1, 1f, 2f, 1); //albastru } else if (choise == 3) { colorScale.SetScale(1, 2f, 1f, 1); //verde } else if (choise == 4) { colorScale.SetScale(2f, 1, 1f, 1); //rosu } //0.7 sepia ch =1 //0.4 ceva verziu //2 albastru fain //5 albastru neon colorMatrix_Sepia.PostConcat(colorScale); Android.Graphics.ColorFilter ColorFilter_Sepia = new Android.Graphics.ColorMatrixColorFilter( colorMatrix_Sepia); Android.Graphics.Bitmap bitmap = Android.Graphics.Bitmap.CreateBitmap(src.Width, src.Height, Android.Graphics.Bitmap.Config.Argb8888); Android.Graphics.Canvas canvas = new Android.Graphics.Canvas(bitmap); Android.Graphics.Paint paint = new Android.Graphics.Paint(); paint.SetColorFilter(ColorFilter_Sepia); canvas.DrawBitmap(src, 0, 0, paint); return(bitmap); }
public override VectorElement BuildClusterElement(MapPos pos, VectorElementVector elements) { MarkerStyle style = null; // Try to reuse existing marker styles if (markerStyles.ContainsKey(elements.Count)) { style = markerStyles[elements.Count]; } if (elements.Count == 1) { style = (elements[0] as Marker).Style; } if (style == null) { Android.Graphics.Bitmap canvasBitmap = markerBitmap.Copy(Android.Graphics.Bitmap.Config.Argb8888, true); Android.Graphics.Canvas canvas = new Android.Graphics.Canvas(canvasBitmap); Android.Graphics.Paint paint = new Android.Graphics.Paint(Android.Graphics.PaintFlags.AntiAlias); paint.TextAlign = (Android.Graphics.Paint.Align.Center); paint.TextSize = 12; paint.Color = Android.Graphics.Color.Argb(255, 0, 0, 0); float x = markerBitmap.Width / 2; float y = markerBitmap.Height / 2 - 5; canvas.DrawText(elements.Count.ToString(), x, y, paint); MarkerStyleBuilder styleBuilder = new MarkerStyleBuilder(); styleBuilder.Bitmap = BitmapUtils.CreateBitmapFromAndroidBitmap(canvasBitmap); styleBuilder.Size = 30; styleBuilder.PlacementPriority = -elements.Count; style = styleBuilder.BuildStyle(); markerStyles.Add(elements.Count, style); } // Create marker for the cluster Marker marker = new Marker(pos, style); return(marker); }
protected override void OnDraw(Android.Graphics.Canvas canvas) { base.OnDraw(canvas); // Use the blurred view’s draw() method to draw on a private canvas. //mBlurredView.Draw(mBlurringCanvas); //// Blur the bitmap backing the private canvas into mBlurredBitmap //blur(); //// Draw mBlurredBitmap with transformations on the blurring view’s main canvas. //canvas.save(); //canvas.translate(mBlurredView.getX() - getX(), mBlurredView.getY() - getY()); //canvas.scale(DOWNSAMPLE_FACTOR, DOWNSAMPLE_FACTOR); //canvas.drawBitmap(mBlurredBitmap, 0, 0, null); //canvas.restore(); }
protected override void OnDraw(Android.Graphics.Canvas canvas) { if (_isTopDown) { canvas.Translate(Width, 0); canvas.Rotate(90); } else { canvas.Translate(0, Height); canvas.Rotate(-90); } canvas.Translate(CompoundPaddingLeft, ExtendedPaddingTop); Layout.Draw(canvas); }
public static void Render (RenderTarget c, Player.PlayerColourNames player, Piece.PieceNames name) { target = c; var color = player == Player.PlayerColourNames.White ? White : Black; var main = color; var alternate = player != Player.PlayerColourNames.White ? White : Black; var white = White; var black = Black; switch (name) { case Piece.PieceNames.Bishop: RenderBishop (c, main, alternate, white, black); break; case Piece.PieceNames.King: if (player == Player.PlayerColourNames.White) RenderWhiteKing (c, main, alternate, white, black); else RenderBlackKing (c, main, alternate, white, black); break; case Piece.PieceNames.Knight: RenderKnight (c, player, main, alternate, white, black); break; case Piece.PieceNames.Pawn: RenderPawn (c, main, alternate, white, black); break; case Piece.PieceNames.Queen: if (player == Player.PlayerColourNames.White) RenderWhiteQueen (c, white, black); else RenderBlackQueen (c); break; case Piece.PieceNames.Rook: if (player == Player.PlayerColourNames.White) RenderWhiteRook (c, white, black); else RenderBlackRook (c); break; } }
public static void RenderWhiteQueen (RenderTarget c, Color white, Color black) { SetFillColor (white); SetStrokeColor (black); MoveTo (9f, 26f); AddCurveToPoint (17.5f, 24.5f, 30f, 24.5f, 36f, 26f); AddLineToPoint (38f, 14f); AddLineToPoint (31f, 25f); AddLineToPoint (31f, 11f); AddLineToPoint (25.5f, 24.5f); AddLineToPoint (22.5f, 9.5f); AddLineToPoint (19.5f, 24.5f); AddLineToPoint (14f, 10.5f); AddLineToPoint (14f, 25f); AddLineToPoint (7f, 14f); AddLineToPoint (9f, 26f); ClosePath (); MoveTo (9f, 26f); FillAndStrokePath (); MoveTo (9f, 26f); AddCurveToPoint (9f, 28f, 10.5f, 28f, 11.5f, 30f); AddCurveToPoint (12.5f, 31.5f, 12.5f, 31f, 12f, 33.5f); AddCurveToPoint (10.5f, 34.5f, 10.5f, 36f, 10.5f, 36f); AddCurveToPoint (9f, 37.5f, 11f, 38.5f, 11f, 38.5f); AddCurveToPoint (17.5f, 39.5f, 27.5f, 39.5f, 34f, 38.5f); AddCurveToPoint (34f, 38.5f, 35.5f, 37.5f, 34f, 36f); AddCurveToPoint (34f, 36f, 34.5f, 34.5f, 33f, 33.5f); AddCurveToPoint (32.5f, 31f, 32.5f, 31.5f, 33.5f, 30f); AddCurveToPoint (34.5f, 28f, 36f, 28f, 36f, 26f); AddCurveToPoint (27.5f, 24.5f, 17.5f, 24.5f, 9f, 26f); ClosePath (); MoveTo (9f, 26f); FillAndStrokePath (); MoveTo (11.5f, 30f); AddCurveToPoint (15f, 29f, 30f, 29f, 33.5f, 30f); StrokePath (); MoveTo (12f, 33.5f); AddCurveToPoint (18f, 32.5f, 27f, 32.5f, 33f, 33.5f); StrokePath (); SetFillColor (White); SetStrokeColor (Black); AddCircle (6f, 12f, 2.0f); FillAndStrokePath (); AddCircle (14f, 9, 2.0f); FillAndStrokePath (); AddCircle (22.5f, 8, 2.0f); FillAndStrokePath (); AddCircle (31, 9, 2.0f); FillAndStrokePath (); AddCircle (39, 12, 2.0f); FillAndStrokePath (); }
public Graphics(Android.Graphics.Canvas canvas) { ACanvas = canvas; Init (); }
public override Carto.Graphics.Bitmap OnDrawPopup(PopupDrawInfo popupDrawInfo) { PopupStyle style = popupDrawInfo.Popup.Style; // Calculate scaled dimensions float DPToPX = popupDrawInfo.DPToPX; float PXTODP = 1 / DPToPX; if (style.ScaleWithDPI) { DPToPX = 1; } else { PXTODP = 1; } float screenWidth = popupDrawInfo.ScreenBounds.GetWidth() * PXTODP; float screenHeight = popupDrawInfo.ScreenBounds.GetHeight() * PXTODP; // Update sizes based on scale (uses extension method, cf. Shared/Extensions int fontSize = FontSize.Update(DPToPX); int triangleWidth = TriangleSize.Update(DPToPX); int triangleHeight = TriangleSize.Update(DPToPX); int strokeWidth = StrokeWidth.Update(DPToPX); int screenPadding = ScreenPadding.Update(DPToPX); // Set font var font = Android.Graphics.Typeface.Create("HelveticaNeue-Light", Android.Graphics.TypefaceStyle.Normal); // Calculate the maximum popup size, adjust with dpi int maxPopupWidth = (int)(Math.Min(screenWidth, screenHeight)); float halfStrokeWidth = strokeWidth * 0.5f; int maxTextWidth = maxPopupWidth - (2 * screenPadding + strokeWidth); // Measure text TextPaint textPaint = new TextPaint { Color = TextColor, TextSize = fontSize }; textPaint.SetTypeface(font); var textLayout = new StaticLayout(text, textPaint, maxTextWidth, Layout.Alignment.AlignNormal, 1, 0, false); int textX = (int)Math.Min(textPaint.MeasureText(text), textLayout.Width); int textY = textLayout.Height; int popupWidth = textX + (2 * PopupPadding + strokeWidth + triangleWidth); int popupHeight = textY + (2 * PopupPadding + strokeWidth); var bitmap = Android.Graphics.Bitmap.CreateBitmap(popupWidth, popupHeight, Android.Graphics.Bitmap.Config.Argb8888); var canvas = new Android.Graphics.Canvas(bitmap); var trianglePath = new Android.Graphics.Path(); trianglePath.MoveTo(triangleWidth, 0); trianglePath.LineTo(halfStrokeWidth, triangleHeight * 0.5f); trianglePath.LineTo(triangleWidth, triangleHeight); trianglePath.Close(); int triangleOffsetX = 0; int triangleOffsetY = (popupHeight - triangleHeight) / 2; // Create paint object var paint = new Android.Graphics.Paint(); paint.AntiAlias = true; paint.SetStyle(Android.Graphics.Paint.Style.Stroke); paint.StrokeWidth = strokeWidth; paint.Color = StrokeColor; // Stroke background var background = new Android.Graphics.RectF(); background.Left = triangleWidth; background.Top = halfStrokeWidth; background.Right = popupWidth - strokeWidth; background.Bottom = popupHeight - strokeWidth; canvas.DrawRect(background, paint); // Stroke triangle canvas.Save(); canvas.Translate(triangleOffsetX, triangleOffsetY); canvas.DrawPath(trianglePath, paint); canvas.Restore(); // Fill background paint.SetStyle(Android.Graphics.Paint.Style.Fill); paint.Color = BackgroundColor; canvas.DrawRect(background, paint); // Fill triangle canvas.Save(); canvas.Translate(triangleOffsetX, triangleOffsetY); canvas.DrawPath(trianglePath, paint); canvas.Restore(); if (textLayout != null) { // Draw text canvas.Save(); canvas.Translate(halfStrokeWidth + triangleWidth + PopupPadding, halfStrokeWidth + PopupPadding); textLayout.Draw(canvas); canvas.Restore(); } return BitmapUtils.CreateBitmapFromAndroidBitmap(bitmap); }
public static bool UseLargeTextures() { var c = new Android.Graphics.Canvas (); return c.MaximumBitmapWidth > 2048; }
public static void RenderWhiteRook (RenderTarget c, Color white, Color black) { SetFillColor (white); SetStrokeColor (black); MoveTo (9f, 39f); AddLineToPoint (36f, 39f); AddLineToPoint (36f, 36f); AddLineToPoint (9f, 36f); AddLineToPoint (9f, 39f); ClosePath (); MoveTo (9f, 39f); FillAndStrokePath (); MoveTo (12f, 36f); AddLineToPoint (12f, 32f); AddLineToPoint (33f, 32f); AddLineToPoint (33f, 36f); AddLineToPoint (12f, 36f); ClosePath (); MoveTo (12f, 36f); FillAndStrokePath (); MoveTo (11f, 14f); AddLineToPoint (11f, 9f); AddLineToPoint (15f, 9f); AddLineToPoint (15f, 11f); AddLineToPoint (20f, 11f); AddLineToPoint (20f, 9f); AddLineToPoint (25f, 9f); AddLineToPoint (25f, 11f); AddLineToPoint (30f, 11f); AddLineToPoint (30f, 9f); AddLineToPoint (34f, 9f); AddLineToPoint (34f, 14f); FillAndStrokePath (); MoveTo (34f, 14f); AddLineToPoint (31f, 17f); AddLineToPoint (14f, 17f); AddLineToPoint (11f, 14f); FillAndStrokePath (); MoveTo (31f, 17f); AddLineToPoint (31f, 29.5f); AddLineToPoint (14f, 29.5f); AddLineToPoint (14f, 17f); FillAndStrokePath (); MoveTo (31f, 29.5f); AddLineToPoint (32.5f, 32f); AddLineToPoint (12.5f, 32f); AddLineToPoint (14f, 29.5f); FillAndStrokePath (); MoveTo (11f, 14f); AddLineToPoint (34f, 14f); StrokePath (); }
public static void RenderPawn (RenderTarget c, Color main, Color alternate, Color white, Color black) { SetFillColor (main); SetStrokeColor (black); MoveTo (22f, 9f); AddCurveToPoint (19.79f, 9f, 18f, 10.79f, 18f, 13f); AddCurveToPoint (18f, 13.89f, 18.29f, 14.71f, 18.78f, 15.38f); AddCurveToPoint (16.83f, 16.5f, 15.5f, 18.59f, 15.5f, 21f); AddCurveToPoint (15.5f, 23.03f, 16.44f, 24.84f, 17.91f, 26.03f); AddCurveToPoint (14.91f, 27.09f, 10.5f, 31.58f, 10.5f, 39.5f); AddLineToPoint (33.5f, 39.5f); AddCurveToPoint (33.5f, 31.58f, 29.09f, 27.09f, 26.09f, 26.03f); AddCurveToPoint (27.56f, 24.84f, 28.5f, 23.03f, 28.5f, 21f); AddCurveToPoint (28.5f, 18.59f, 27.17f, 16.5f, 25.22f, 15.38f); AddCurveToPoint (25.71f, 14.71f, 26f, 13.89f, 26f, 13f); AddCurveToPoint (26f, 10.79f, 24.21f, 9f, 22f, 9f); ClosePath (); MoveTo (22f, 9f); FillAndStrokePath (); }
public Graphics(Image image) { ACanvas = new Android.Graphics.Canvas((image as Bitmap).ABitmap); SourceBitmap = image as Bitmap; Init (); }
/// <summary> /// Get OCR text and draw lines on original photo /// </summary> /// <param name="imageBytes"></param> /// <param name="threshhold"></param> private async void PerformOCR(byte[] imageBytes, double threshhold) { if (_api.Initialized) { string resultText = ""; var result = await _api.SetImage(imageBytes); if (result) { resultText = _api.Text; bitmapWithBoxes = bitmap.Copy(bitmap.GetConfig(), true); Android.Graphics.Canvas canvas = new Android.Graphics.Canvas(bitmapWithBoxes); Android.Graphics.Color color = Android.Graphics.Color.IndianRed; Android.Graphics.Paint paint = new Android.Graphics.Paint(); paint.SetStyle(Android.Graphics.Paint.Style.Stroke); paint.StrokeWidth = 2; foreach (Tesseract.Result r in _api.Results(Tesseract.PageIteratorLevel.Textline)) { if (r.Confidence > 50) { paint.Color = Android.Graphics.Color.GreenYellow; } else if (r.Confidence > 10) { paint.Color = Android.Graphics.Color.DarkOrange; } else { paint.Color = Android.Graphics.Color.DarkRed; } canvas.DrawRect(r.Box.X, r.Box.Y, r.Box.X + r.Box.Width, r.Box.Y + r.Box.Height, paint); } canvas.Dispose(); Android.Util.Log.Info("tesseract result", resultText); PostProcessing pp = new PostProcessing(); pp.ProcessString(resultText); _data = pp.processedList; } } else { Toast.MakeText(this, "OCR not initialized.", ToastLength.Long).Show(); } }
void ScreenshotTest(object sender,EventArgs EventArgs) { Android.Graphics.Bitmap b = Android.Graphics.Bitmap.CreateBitmap(RI.TL.Width,RI.TL.Height,Android.Graphics.Bitmap.Config.Argb8888); Android.Graphics.Canvas c = new Android.Graphics.Canvas (b); c.DrawColor (Android.Graphics.Color.White); RI.TL.Draw(c); using (System.IO.FileStream fs = new System.IO.FileStream ( "/sdcard/screen.png", System.IO.FileMode.Create)) { b.Compress (Android.Graphics.Bitmap.CompressFormat.Png, 90, fs);} var uri = Android.Net.Uri.FromFile (new Java.IO.File("/sdcard/screen.png")); var email = new Intent (Android.Content.Intent.ActionSend); email.SetType ("message/rfc822"); email.PutExtra (Android.Content.Intent.ExtraEmail, new string[]{"*****@*****.**"} ); email.PutExtra (Android.Content.Intent.ExtraCc, new string[]{"*****@*****.**"} ); email.PutExtra (Android.Content.Intent.ExtraSubject, "[ModemListe]"); email.PutExtra (Android.Content.Intent.ExtraText, "Hello from Xamarin.Android"); email.PutExtra (Intent.ExtraStream,uri); StartActivity (Intent.CreateChooser(email,"send")); }
public static void RenderBlackRook (RenderTarget c) { SetFillColor (Black); SetStrokeColor (White); MoveTo (9f, 39f); AddLineToPoint (36f, 39f); AddLineToPoint (36f, 36f); AddLineToPoint (9f, 36f); AddLineToPoint (9f, 39f); ClosePath (); MoveTo (9f, 39f); FillPath (); MoveTo (12.5f, 32f); AddLineToPoint (14f, 29.5f); AddLineToPoint (31f, 29.5f); AddLineToPoint (32.5f, 32f); AddLineToPoint (12.5f, 32f); ClosePath (); MoveTo (12.5f, 32f); FillPath (); MoveTo (12f, 36f); AddLineToPoint (12f, 32f); AddLineToPoint (33f, 32f); AddLineToPoint (33f, 36f); AddLineToPoint (12f, 36f); ClosePath (); MoveTo (12f, 36f); FillPath (); MoveTo (14f, 29.5f); AddLineToPoint (14f, 16.5f); AddLineToPoint (31f, 16.5f); AddLineToPoint (31f, 29.5f); AddLineToPoint (14f, 29.5f); ClosePath (); MoveTo (14f, 29.5f); FillPath (); MoveTo (14f, 16.5f); AddLineToPoint (11f, 14f); AddLineToPoint (34f, 14f); AddLineToPoint (31f, 16.5f); AddLineToPoint (14f, 16.5f); ClosePath (); MoveTo (14f, 16.5f); FillPath (); MoveTo (11f, 14f); AddLineToPoint (11f, 9f); AddLineToPoint (15f, 9f); AddLineToPoint (15f, 11f); AddLineToPoint (20f, 11f); AddLineToPoint (20f, 9f); AddLineToPoint (25f, 9f); AddLineToPoint (25f, 11f); AddLineToPoint (30f, 11f); AddLineToPoint (30f, 9f); AddLineToPoint (34f, 9f); AddLineToPoint (34f, 14f); AddLineToPoint (11f, 14f); ClosePath (); MoveTo (11f, 14f); FillPath (); MoveTo (12f, 35.5f); AddLineToPoint (33f, 35.5f); AddLineToPoint (33f, 35.5f); StrokePath (); MoveTo (13f, 31.5f); AddLineToPoint (32f, 31.5f); StrokePath (); MoveTo (14f, 29.5f); AddLineToPoint (31f, 29.5f); StrokePath (); MoveTo (14f, 16.5f); AddLineToPoint (31f, 16.5f); StrokePath (); MoveTo (11f, 14f); AddLineToPoint (34f, 14f); StrokePath (); }
public static void RenderBlackKing (RenderTarget c, Color main, Color alternate, Color white, Color black) { SetStrokeColor (black); MoveTo (22.5f, 11.63f); AddLineToPoint (22.5f, 6f); StrokePath (); SetFillColor (main); SetStrokeColor (alternate); MoveTo (22.5f, 25f); AddCurveToPoint (22.5f, 25f, 27f, 17.5f, 25.5f, 14.5f); AddCurveToPoint (25.5f, 14.5f, 24.5f, 12f, 22.5f, 12f); AddCurveToPoint (20.5f, 12f, 19.5f, 14.5f, 19.5f, 14.5f); AddCurveToPoint (18f, 17.5f, 22.5f, 25f, 22.5f, 25f); FillPath (); MoveTo (11.5f, 37f); AddCurveToPoint (17f, 40.5f, 27f, 40.5f, 32.5f, 37f); AddLineToPoint (32.5f, 30f); AddCurveToPoint (32.5f, 30f, 41.5f, 25.5f, 38.5f, 19.5f); AddCurveToPoint (34.5f, 13f, 25f, 16f, 22.5f, 23.5f); AddLineToPoint (22.5f, 27f); AddLineToPoint (22.5f, 23.5f); AddCurveToPoint (19f, 16f, 9.5f, 13f, 6.5f, 19.5f); AddCurveToPoint (3.5f, 25.5f, 11.5f, 29.5f, 11.5f, 29.5f); AddLineToPoint (11.5f, 37f); ClosePath (); MoveTo (11.5f, 37f); FillPath (); SetStrokeColor (black); MoveTo (20f, 8f); AddLineToPoint (25f, 8f); StrokePath (); SetStrokeColor (alternate); MoveTo (32f, 29.5f); AddCurveToPoint (32f, 29.5f, 40.5f, 25.5f, 38.03f, 19.85f); AddCurveToPoint (34.15f, 14f, 25f, 18f, 22.5f, 24.5f); AddLineToPoint (22.51f, 26.6f); AddLineToPoint (22.5f, 24.5f); AddCurveToPoint (20f, 18f, 9.906f, 14f, 6.997f, 19.85f); AddCurveToPoint (4.5f, 25.5f, 11.85f, 28.85f, 11.85f, 28.85f); StrokePath (); MoveTo (11.5f, 30f); AddCurveToPoint (17f, 27f, 27f, 27f, 32.5f, 30f); MoveTo (11.5f, 33.5f); AddCurveToPoint (17f, 30.5f, 27f, 30.5f, 32.5f, 33.5f); MoveTo (11.5f, 37f); AddCurveToPoint (17f, 34f, 27f, 34f, 32.5f, 37f); StrokePath (); }
public static void RenderBlackQueen (RenderTarget c) { SetFillColor (Black); SetStrokeColor (White); AddCircle (6f, 12f, 2.75f); FillPath (); AddCircle (14f, 9, 2.75f); FillPath (); AddCircle (22.5f, 8, 2.75f); FillPath (); AddCircle (31, 9, 2.75f); FillPath (); AddCircle (39, 12, 2.75f); FillPath (); MoveTo (9f, 26f); AddCurveToPoint (17.5f, 24.5f, 30f, 24.5f, 36f, 26f); AddLineToPoint (38.5f, 13.5f); AddLineToPoint (31f, 25f); AddLineToPoint (30.7f, 10.9f); AddLineToPoint (25.5f, 24.5f); AddLineToPoint (22.5f, 10f); AddLineToPoint (19.5f, 24.5f); AddLineToPoint (14.3f, 10.9f); AddLineToPoint (14f, 25f); AddLineToPoint (6.5f, 13.5f); AddLineToPoint (9f, 26f); ClosePath (); MoveTo (9f, 26f); FillPath (); MoveTo (9f, 26f); AddCurveToPoint (9f, 28f, 10.5f, 28f, 11.5f, 30f); AddCurveToPoint (12.5f, 31.5f, 12.5f, 31f, 12f, 33.5f); AddCurveToPoint (10.5f, 34.5f, 10.5f, 36f, 10.5f, 36f); AddCurveToPoint (9f, 37.5f, 11f, 38.5f, 11f, 38.5f); AddCurveToPoint (17.5f, 39.5f, 27.5f, 39.5f, 34f, 38.5f); AddCurveToPoint (34f, 38.5f, 35.5f, 37.5f, 34f, 36f); AddCurveToPoint (34f, 36f, 34.5f, 34.5f, 33f, 33.5f); AddCurveToPoint (32.5f, 31f, 32.5f, 31.5f, 33.5f, 30f); AddCurveToPoint (34.5f, 28f, 36f, 28f, 36f, 26f); AddCurveToPoint (27.5f, 24.5f, 17.5f, 24.5f, 9f, 26f); ClosePath (); MoveTo (9f, 26f); FillPath (); MoveTo (11f, 38.5f); AddCurveToPoint (18.44776f, 41.09097f, 26.55224f, 41.09097f, 34f, 38.5f); FillAndStrokePath (); MoveTo (11f, 29f); AddCurveToPoint (18.44776f, 26.40903f, 26.55224f, 26.40903f, 34f, 29f); FillAndStrokePath (); MoveTo (12.5f, 31.5f); AddLineToPoint (32.5f, 31.5f); FillAndStrokePath (); MoveTo (11.5f, 34.5f); AddCurveToPoint (18.64271f, 36.86467f, 26.35729f, 36.86467f, 33.5f, 34.5f); FillAndStrokePath (); MoveTo (10.5f, 37.5f); AddCurveToPoint (18.24997f, 40.32858f, 26.75003f, 40.32858f, 34.5f, 37.5f); FillAndStrokePath (); }
public static void RenderKnight (RenderTarget c, Player.PlayerColourNames player, Color main, Color alternate, Color white, Color black) { SetFillColor (main); SetStrokeColor (black); MoveTo (22f, 10f); AddCurveToPoint (32.5f, 11f, 38.5f, 18f, 38f, 39f); AddLineToPoint (15f, 39f); AddCurveToPoint (15f, 30f, 25f, 32.5f, 23f, 18f); FillAndStrokePath (); SetFillColor (main); SetStrokeColor (black); MoveTo (24f, 18f); AddCurveToPoint (24.38f, 20.91f, 18.45f, 25.37f, 16f, 27f); AddCurveToPoint (13f, 29f, 13.18f, 31.34f, 11f, 31f); AddCurveToPoint (9.958f, 30.06f, 12.41f, 27.96f, 11f, 28f); AddCurveToPoint (10f, 28f, 11.19f, 29.23f, 10f, 30f); AddCurveToPoint (9f, 30f, 5.997f, 31f, 6f, 26f); AddCurveToPoint (6f, 24f, 12f, 14f, 12f, 14f); AddCurveToPoint (12f, 14f, 13.89f, 12.1f, 14f, 10.5f); AddCurveToPoint (13.27f, 9.506f, 13.5f, 8.5f, 13.5f, 7.5f); AddCurveToPoint (14.5f, 6.5f, 16.5f, 10f, 16.5f, 10f); AddLineToPoint (18.5f, 10f); AddCurveToPoint (18.5f, 10f, 19.28f, 8.008f, 21f, 7f); AddCurveToPoint (22f, 7f, 22f, 10f, 22f, 10f); FillAndStrokePath (); SetFillColor (main); SetStrokeColor (alternate); MoveTo (9.5f, 25.5f); AddCurveToPoint (9.5f, 25.77614f, 9.276142f, 26f, 9f, 26f); AddCurveToPoint (8.723858f, 26f, 8.5f, 25.77614f, 8.5f, 25.5f); AddCurveToPoint (8.5f, 25.22386f, 8.723858f, 25f, 9f, 25f); AddCurveToPoint (9.276142f, 25f, 9.5f, 25.22386f, 9.5f, 25.5f); ClosePath (); MoveTo (9.5f, 25.5f); FillAndStrokePath (); SetMatrix (0.866f, 0.5f, -0.5f, 0.866f, 9.693f, -5.173f); SetFillColor (black); SetStrokeColor (alternate); MoveTo (15f, 15.5f); AddCurveToPoint (15f, 16.32843f, 14.77614f, 17f, 14.5f, 17f); AddCurveToPoint (14.22386f, 17f, 14f, 16.32843f, 14f, 15.5f); AddCurveToPoint (14f, 14.67157f, 14.22386f, 14f, 14.5f, 14f); AddCurveToPoint (14.77614f, 14f, 15f, 14.67157f, 15f, 15.5f); ClosePath (); MoveTo (15f, 15.5f); FillAndStrokePath (); if (player == Player.PlayerColourNames.Black) { SetFillColor (white); MoveTo (24.55f, 10.4f); AddLineToPoint (24.1f, 11.85f); AddLineToPoint (24.6f, 12f); AddCurveToPoint (27.75f, 13f, 30.25f, 14.49f, 32.5f, 18.75f); AddCurveToPoint (34.75f, 23.01f, 35.75f, 29.06f, 35.25f, 39f); AddLineToPoint (35.2f, 39.5f); AddLineToPoint (37.45f, 39.5f); AddLineToPoint (37.5f, 39f); AddCurveToPoint (38f, 28.94f, 36.62f, 22.15f, 34.25f, 17.66f); AddCurveToPoint (31.88f, 13.17f, 28.46f, 11.02f, 25.06f, 10.5f); AddLineToPoint (24.55f, 10.4f); ClosePath (); MoveTo (24.55f, 10.4f); FillPath (); } }