code: private void drawPoints(Canvas canvas, Line line, int lineIndex, int mode) {
          pointPaint.setColor(line.getPointColor());
          int valueIndex = 0;
          for (PointValue pointValue : line.getValues()) {
              int pointRadius = ChartUtils.dp2px(density, line.getPointRadius());
              final float rawX = computator.computeRawX(pointValue.getX());
              final float rawY = computator.computeRawY(pointValue.getY());
              if (computator.isWithinContentRect(rawX, rawY, checkPrecision)) {
                  // Draw points only if they are within contentRectMinusAllMargins, using contentRectMinusAllMargins
                  // instead of viewport to avoid some
                  // float rounding problems.
                  if (MODE_DRAW == mode) {
                      drawPoint(canvas, line, pointValue, rawX, rawY, pointRadius);
                      if (line.hasLabels()) {
                          drawLabel(canvas, line, pointValue, rawX, rawY, pointRadius + labelOffset);
                      }
                  } else if (MODE_HIGHLIGHT == mode) {
                      highlightPoint(canvas, line, pointValue, rawX, rawY, lineIndex, valueIndex);
                  } else {
                      throw new IllegalStateException("Cannot process points in mode: " + mode);
                  }
              }
              ++valueIndex;
          }
      }
docs: implementing point styles.