Search in sources :

Example 36 with BarData

use of org.xclcharts.chart.BarData in project XCL-Charts by xcltapestry.

the class BarChart01View method triggerClick.

// 触发监听
private void triggerClick(float x, float y) {
    // 交叉线
    if (chart.getDyLineVisible())
        chart.getDyLine().setCurrentXY(x, y);
    if (!chart.getListenItemClickStatus()) {
        // 交叉线
        if (chart.getDyLineVisible() && chart.getDyLine().isInvalidate())
            this.invalidate();
    } else {
        BarPosition record = chart.getPositionRecord(x, y);
        if (null == record) {
            if (chart.getDyLineVisible())
                this.invalidate();
            return;
        }
        if (record.getDataID() >= chartData.size())
            return;
        BarData bData = chartData.get(record.getDataID());
        if (record.getDataChildID() >= bData.getDataSet().size())
            return;
        Double bValue = bData.getDataSet().get(record.getDataChildID());
        // 显示选中框
        chart.showFocusRectF(record.getRectF());
        chart.getFocusPaint().setStyle(Style.STROKE);
        chart.getFocusPaint().setStrokeWidth(3);
        chart.getFocusPaint().setColor(Color.GREEN);
        // 在点击处显示tooltip
        mPaintToolTip.setAntiAlias(true);
        mPaintToolTip.setColor(bData.getColor());
        mDotToolTip.setDotStyle(XEnum.DotStyle.RECT);
        // bData.getColor());
        mDotToolTip.setColor(Color.BLUE);
        // 位置显示方法一:
        // 用下列方法可以让tooltip显示在柱形顶部
        // chart.getToolTip().setCurrentXY(record.getRectF().centerX(),record.getRectF().top);
        // 位置显示方法二:
        // 用下列方法可以让tooltip在所点击位置显示
        chart.getToolTip().setCurrentXY(x, y);
        chart.getToolTip().setStyle(XEnum.DyInfoStyle.ROUNDRECT);
        chart.getToolTip().addToolTip(mDotToolTip, bData.getKey(), mPaintToolTip);
        chart.getToolTip().addToolTip("数量:" + Double.toString(bValue), mPaintToolTip);
        chart.getToolTip().getBackgroundPaint().setAlpha(100);
        chart.getToolTip().setAlign(Align.CENTER);
        chart.getToolTip().setInfoStyle(XEnum.DyInfoStyle.CIRCLE);
        // chart.getToolTip().getBackgroundPaint().setColor(Color.rgb(30, 30, 30));
        this.invalidate();
    }
}
Also used : BarData(org.xclcharts.chart.BarData) BarPosition(org.xclcharts.event.click.BarPosition)

Aggregations

BarData (org.xclcharts.chart.BarData)36 LinkedList (java.util.LinkedList)25 BarPosition (org.xclcharts.event.click.BarPosition)9 Random (java.util.Random)4 Paint (android.graphics.Paint)2 SuppressLint (android.annotation.SuppressLint)1 ArrayList (java.util.ArrayList)1 PlotDot (org.xclcharts.renderer.line.PlotDot)1