// 触发监听 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(); } }
private void chartDataSet() { // Line 1 LinkedList<Double> dataSeries1 = new LinkedList<Double>(); dataSeries1.add(20d); dataSeries1.add(10d); dataSeries1.add(31d); dataSeries1.add(40d); dataSeries1.add(0d); LineData lineData1 = new LineData("方块", dataSeries1, Color.rgb(234, 83, 71)); lineData1.setLabelVisible(true); lineData1.setDotStyle(XEnum.DotStyle.RECT); lineData1.getDotLabelPaint().setColor(Color.BLUE); lineData1.getDotLabelPaint().setTextSize(22); lineData1.getDotLabelPaint().setTextAlign(Align.LEFT); lineData1.setItemLabelRotateAngle(45.f); lineData1.getLabelOptions().setLabelBoxStyle(XEnum.LabelBoxStyle.TEXT); // lineData1.getLabelOptions(). // lineData1.setDataSet(dataSeries); // this.invalidate(); // Line 2 LinkedList<Double> dataSeries2 = new LinkedList<Double>(); dataSeries2.add((double) 30); dataSeries2.add((double) 42); dataSeries2.add((double) 0); dataSeries2.add((double) 60); dataSeries2.add((double) 40); LineData lineData2 = new LineData("圆环", dataSeries2, Color.rgb(75, 166, 51)); lineData2.setDotStyle(XEnum.DotStyle.RING); lineData2.getPlotLine().getDotPaint().setColor(Color.RED); lineData2.setLabelVisible(true); lineData2.getPlotLine().getPlotDot().setRingInnerColor(Color.GREEN); lineData2.setLineStyle(XEnum.LineStyle.DASH); // 设置点大小 // lineData2.getPlotLine().getPlotDot().setDotRadius(radius); // Line 3 LinkedList<Double> dataSeries3 = new LinkedList<Double>(); dataSeries3.add(65d); dataSeries3.add(75d); dataSeries3.add(55d); dataSeries3.add(65d); dataSeries3.add(95d); LineData lineData3 = new LineData("圆点", dataSeries3, Color.rgb(123, 89, 168)); lineData3.setDotStyle(XEnum.DotStyle.DOT); lineData3.setDotRadius(20); // lineData3.setLabelVisible(true); // lineData3.getDotLabelPaint().setTextAlign(Align.CENTER); // Line 4 LinkedList<Double> dataSeries4 = new LinkedList<Double>(); dataSeries4.add(50d); dataSeries4.add(60d); dataSeries4.add(80d); dataSeries4.add(84d); dataSeries4.add(90d); LineData lineData4 = new LineData("棱形", dataSeries4, Color.rgb(84, 206, 231)); lineData4.setDotStyle(XEnum.DotStyle.PRISMATIC); // 把线弄细点 lineData4.getLinePaint().setStrokeWidth(2); lineData4.getLabelOptions().setLabelBoxStyle(XEnum.LabelBoxStyle.CIRCLE); lineData4.getLabelOptions().getBox().getBackgroundPaint().setColor(Color.GREEN); lineData4.setLabelVisible(true); // Line 5 LinkedList<Double> valuesE = new LinkedList<Double>(); valuesE.add(0d); valuesE.add(80d); valuesE.add(85d); valuesE.add(90d); LineData lineData5 = new LineData("定制", valuesE, Color.rgb(234, 142, 43)); lineData5.setDotRadius(15); lineData5.setDotStyle(XEnum.DotStyle.TRIANGLE); // Line 2 LinkedList<Double> dataSeries6 = new LinkedList<Double>(); dataSeries6.add((double) 50); dataSeries6.add((double) 52); dataSeries6.add((double) 53); dataSeries6.add((double) 55); dataSeries6.add((double) 40); LineData lineData6 = new LineData("圆环2", dataSeries6, Color.rgb(75, 166, 51)); lineData6.setDotStyle(XEnum.DotStyle.RING2); lineData6.getPlotLine().getDotPaint().setColor(Color.RED); lineData6.setLabelVisible(true); // lineData6.getPlotLine().getPlotDot().setRingInnerColor(Color.GREEN); // lineData6.getPlotLine().getPlotDot().setRing2InnerColor(Color.GREEN); // lineData6.setLineStyle(XEnum.LineStyle.DASH); lineData6.getDotLabelPaint().setColor(Color.rgb(212, 64, 39)); lineData6.getLabelOptions().getBox().getBackgroundPaint().setColor(Color.rgb(57, 172, 241)); lineData6.getLabelOptions().getBox().setBorderLineColor(Color.YELLOW); chartData.add(lineData1); chartData.add(lineData2); chartData.add(lineData3); chartData.add(lineData4); chartData.add(lineData5); chartData.add(lineData6); }