// 触发监听 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(); } }