@Override public void draw(Canvas canvas) { float w = 72 * scaleCoefficient / miniCoeff; // to change color immediately when needed if (lanes != null && lanes.length > 0) { canvas.save(); // canvas.translate((int) (16 * scaleCoefficient), 0); for (int i = 0; i < lanes.length; i++) { int turnType; if ((lanes[i] & 1) == 1) { paintRouteDirection.setColor( imminent ? ctx.getResources().getColor(R.color.nav_arrow_imminent) : ctx.getResources().getColor(R.color.nav_arrow)); turnType = TurnType.getPrimaryTurn(lanes[i]); } else { paintRouteDirection.setColor(ctx.getResources().getColor(R.color.nav_arrow_distant)); turnType = TurnType.getPrimaryTurn(lanes[i]); } Path p = getPathFromTurnType(paths, turnType, laneStraight, scaleCoefficient / miniCoeff); canvas.drawPath(p, paintBlack); canvas.drawPath(p, paintRouteDirection); canvas.translate(w, 0); } canvas.restore(); } }