Пример #1
0
        public void drawSymbols(List <SymbolContainer> symbolContainers)
        {
            for (int index = symbolContainers.Count - 1; index >= 0; --index)
            {
                SymbolContainer symbolContainer = symbolContainers[index];

                MapPoint point = symbolContainer.point;
                if (symbolContainer.alignCenter)
                {
                    double pivotX = symbolContainer.symbol.Width / 2;
                    double pivotY = symbolContainer.symbol.Height / 2;
                    this.symbolMatrix.Rotation = symbolContainer.rotation;
                    this.symbolMatrix.CenterX  = pivotX;
                    this.symbolMatrix.CenterY  = pivotY;

                    this.symbolMatrix.TranslateX = point.X - pivotX;
                    this.symbolMatrix.TranslateY = point.Y - pivotY;
                }
                else
                {
                    this.symbolMatrix.Rotation   = symbolContainer.rotation;
                    this.symbolMatrix.TranslateX = point.X;
                    this.symbolMatrix.TranslateY = point.Y;
                }

                BitmapImage androidBitmap = AndroidGraphics.getAndroidBitmap(symbolContainer.symbol);
                this.canvas.drawBitmap(androidBitmap, this.symbolMatrix, PAINT_BITMAP_FILTER);
            }
        }
Пример #2
0
            public override void Draw(global::Android.Graphics.Canvas canvas)
            {
                base.Draw(canvas);

                var g = new AndroidGraphics(canvas);

                _clock.Width  = Width;
                _clock.Height = Height;

                _clock.Draw(g);
            }
Пример #3
0
            //protected View(IntPtr javaReference, JniHandleOwnership transfer);
            //[Register(".ctor", "(Landroid/content/Context;Landroid/util/AttributeSet;I)V", "")]



            public override void Draw(global::Android.Graphics.Canvas canvas)
            {
                base.Draw(canvas);

                var g = new AndroidGraphics(canvas, Context);

                _clock.Width  = Width / Resources.DisplayMetrics.ScaledDensity;
                _clock.Height = Height / Resources.DisplayMetrics.ScaledDensity;

                _clock.Draw(g);
            }
Пример #4
0
        public void drawWays(List <List <List <ShapePaintContainer> > > drawWays)
        {
            int levelsPerLayer = drawWays[0].Count;

            for (int layer = 0, layers = drawWays.Count; layer < layers; ++layer)
            {
                List <List <ShapePaintContainer> > shapePaintContainers = drawWays[layer];

                for (int level = 0; level < levelsPerLayer; ++level)
                {
                    List <ShapePaintContainer> wayList = shapePaintContainers[level];

                    for (int index = wayList.Count - 1; index >= 0; --index)
                    {
                        ShapePaintContainer shapePaintContainer = wayList[index];
                        this.path.rewind();

                        switch (shapePaintContainer.shapeContainer.getShapeType())
                        {
                        case ShapeType.CIRCLE:
                            CircleContainer circleContainer = (CircleContainer)shapePaintContainer.shapeContainer;
                            MapPoint        point           = circleContainer.point;
                            this.path.AddCircle((float)point.X, (float)point.Y, circleContainer.radius,
                                                Path.Direction.CCW);
                            break;

                        case ShapeType.WAY:
                            WayContainer wayContainer = (WayContainer)shapePaintContainer.shapeContainer;
                            MapPoint[][] coordinates  = wayContainer.coordinates;
                            for (int j = 0; j < coordinates.Length; ++j)
                            {
                                // make sure that the coordinates sequence is not empty
                                MapPoint[] points = coordinates[j];
                                if (points.Length >= 2)
                                {
                                    MapPoint immutablepoint = points[0];
                                    this.path.moveTo((float)immutablepoint.X, (float)immutablepoint.Y);
                                    for (int i = 1; i < points.Length; ++i)
                                    {
                                        immutablepoint = points[i];
                                        this.path.lineTo((float)immutablepoint.X, (float)immutablepoint.Y);
                                    }
                                }
                            }
                            break;
                        }

                        Paint androidPaint = AndroidGraphics.getAndroidPaint(shapePaintContainer.paint);
                        this.canvas.drawPath(this.path, androidPaint);
                    }
                }
            }
        }
Пример #5
0
        public void drawWayNames(List <WayTextContainer> wayTextContainers)
        {
            for (int index = wayTextContainers.Count - 1; index >= 0; --index)
            {
                WayTextContainer wayTextContainer = wayTextContainers[index];
                this.path.rewind();

                double[] textCoordinates = wayTextContainer.coordinates;
                this.path.moveTo((float)textCoordinates[0], (float)textCoordinates[1]);
                for (int i = 2; i < textCoordinates.Length; i += 2)
                {
                    this.path.lineTo((float)textCoordinates[i], (float)textCoordinates[i + 1]);
                }

                Paint androidPaint = AndroidGraphics.getAndroidPaint(wayTextContainer.paint);
                this.canvas.drawTextOnPath(wayTextContainer.text, this.path, 0, 3, androidPaint);
            }
        }
Пример #6
0
        public void drawNodes(List <pointTextContainer> pointTextContainers)
        {
            for (int index = pointTextContainers.Count - 1; index >= 0; --index)
            {
                pointTextContainer pointTextContainer = pointTextContainers.get(index);

                if (pointTextContainer.paintBack != null)
                {
                    Paint androidPaint = AndroidGraphics.getAndroidPaint(pointTextContainer.paintBack);
                    this.canvas.drawText(pointTextContainer.text, (float)pointTextContainer.x,
                                         (float)pointTextContainer.y, androidPaint);
                }


                Paint androidPaint = AndroidGraphics.getAndroidPaint(pointTextContainer.paintFront);
                this.canvas.drawText(pointTextContainer.text, (float)pointTextContainer.x, (float)pointTextContainer.y,
                                     androidPaint);
            }
        }