Exemplo n.º 1
0
  // 触发监听
  private void triggerClick(float x, float y) {

    // 交叉线
    if (chart.getDyLineVisible()) chart.getDyLine().setCurrentXY(x, y);
    if (!chart.getListenItemClickStatus()) {
      // 交叉线
      if (chart.getDyLineVisible()) this.invalidate();
    } else {
      PointPosition record = chart.getPositionRecord(x, y);
      if (null == record) {
        if (chart.getDyLineVisible()) this.invalidate();
        return;
      }

      LineData lData = chartData.get(record.getDataID());
      Double lValue = lData.getLinePoint().get(record.getDataChildID());

      float r = record.getRadius();
      chart.showFocusPointF(record.getPosition(), r + r * 0.5f);
      chart.getFocusPaint().setStyle(Style.STROKE);
      chart.getFocusPaint().setStrokeWidth(3);
      if (record.getDataID() >= 3) {
        chart.getFocusPaint().setColor(Color.BLUE);
      } else {
        chart.getFocusPaint().setColor(Color.RED);
      }

      // 在点击处显示tooltip
      mPaintTooltips.setColor(Color.RED);
      // chart.getToolTip().setCurrentXY(x,y);
      chart.getToolTip().setCurrentXY(record.getPosition().x, record.getPosition().y);

      chart.getToolTip().addToolTip(" Key:" + lData.getLineKey(), mPaintTooltips);
      chart.getToolTip().addToolTip(" Label:" + lData.getLabel(), mPaintTooltips);
      chart.getToolTip().addToolTip(" Current Value:" + Double.toString(lValue), mPaintTooltips);

      // 当前标签对应的其它点的值
      int cid = record.getDataChildID();
      String xLabels = "";
      for (LineData data : chartData) {
        if (cid < data.getLinePoint().size()) {
          xLabels = Double.toString(data.getLinePoint().get(cid));
          chart.getToolTip().addToolTip("Line:" + data.getLabel() + "," + xLabels, mPaintTooltips);
        }
      }

      this.invalidate();
    }
  }