GraphView在点击时不显示第一个数据点

问题描述 投票:0回答:1

这些代码应该绘制一个图形,然后在点击时,它应该将相应的数据点显示为吐司通知。一切正常,除了第一个数据点未显示在抽头上(x = 1,y = amount)。它仅显示为(x = 2,y = amount)。

public void DrawGraph(int term, double amount, Float P, Float r, GraphView graph){

        graph.setVisibility(View.VISIBLE);
        graph.getViewport().setScrollable(true);
        graph.getViewport().setScrollableY(true);
        graph.getViewport().setMinX(0);
        graph.getViewport().setMaxX(term+1);
        graph.getViewport().setMinY(0);
        graph.getViewport().setMaxY(Math.round(amount)*1.15);
        graph.getViewport().setYAxisBoundsManual(true);
        graph.getViewport().setXAxisBoundsManual(true);

        graph.removeAllSeries();
        LineGraphSeries<DataPoint> series = new LineGraphSeries<>();

        for (int i=1;i<=term;i++){
            int x=i;
            long y=Math.round(P * java.lang.Math.pow(1 + (r) / 100, i));
            series.appendData(new DataPoint(x,y),true,term);
        }

        graph.addSeries(series);
        series.setOnDataPointTapListener(new OnDataPointTapListener() {
            @Override
            public void onTap(Series series, DataPointInterface dataPoint) {
                Toast.makeText(SinglePremium.this,"After "+(int)dataPoint.getX()+" years amount becomes "+(long)dataPoint.getY(),Toast.LENGTH_LONG).show();
            }
        });
    }
android android-studio android-graphview
1个回答
0
投票

此行代码解决了该问题。

series.setDrawDataPoints(true);

这里,系列是LineGraphSeries的对象。

© www.soinside.com 2019 - 2024. All rights reserved.