Exemplo n.º 1
0
  /**
   * add a new stick data to sticks
   *
   * <p>新しいスティックデータを追加する
   *
   * <p>追加一条新数据
   *
   * @param entity
   *     <p>data
   *     <p>データ
   *     <p>新数据
   */
  public void addData(StickEntity entity) {
    if (null != entity) {
      // data is null or empty
      if (null == StickData || 0 == StickData.size()) {
        StickData = new ArrayList<StickEntity>();
        this.maxValue = ((int) entity.getHigh()) / 100 * 100;
      }

      // add
      this.StickData.add(entity);

      if (this.maxValue < entity.getHigh()) {
        this.maxValue = 100 + ((int) entity.getHigh()) / 100 * 100;
      }

      if (StickData.size() > maxSticksNum) {
        maxSticksNum = maxSticksNum + 1;
      }
    }
  }
Exemplo n.º 2
0
  /**
   * draw sticks
   *
   * <p>スティックを書く
   *
   * <p>绘制柱条
   *
   * @param canvas
   */
  protected void drawSticks(Canvas canvas) {
    float stickWidth =
        ((super.getWidth() - super.getAxisMarginLeft() - super.getAxisMarginRight()) / maxSticksNum)
            - 1;
    float stickX = super.getAxisMarginLeft() + 1;

    Paint mPaintStick = new Paint();
    mPaintStick.setColor(stickFillColor);

    if (null != StickData) {

      for (int i = 0; i < StickData.size(); i++) {
        StickEntity ohlc = StickData.get(i);

        float highY =
            (float)
                ((1f - (ohlc.getHigh() - minValue) / (maxValue - minValue))
                        * (super.getHeight() - super.getAxisMarginBottom())
                    - super.getAxisMarginTop());
        float lowY =
            (float)
                ((1f - (ohlc.getLow() - minValue) / (maxValue - minValue))
                        * (super.getHeight() - super.getAxisMarginBottom())
                    - super.getAxisMarginTop());

        // stick or line?
        if (stickWidth >= 2f) {
          canvas.drawRect(stickX, highY, stickX + stickWidth, lowY, mPaintStick);
        } else {
          canvas.drawLine(stickX, highY, stickX, lowY, mPaintStick);
        }

        // next x
        stickX = xAxisOffset + stickX + 1 + stickWidth;
      }
    }
  }