MP Android图表

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

[嗨,我在我的Android应用中使用MPAndroid图表作为图表库。我试图用不同的颜色突出显示线数据集上一些超出范围的值(图片1),如果该值超出范围,那么我也想更改标记视图可绘制图像。 Picture 1

我已经实现了这一点(图片2),我设法将颜色更改为超出范围值的红色。如何获得图表中的图片1? Picture 2

private void populateChart() {
    chart = binding.lcCharts;
    chart.setBackgroundColor(Color.WHITE);
    chart.getDescription().setEnabled(false);
    chart.setDoubleTapToZoomEnabled(false);
    chart.setPinchZoom(false);
    chart.setScaleEnabled(false);

    LineData lineData = new LineData(setLineDataSet());
    lineData.setDrawValues(false);

    chart.setData(lineData);
    chart.setTouchEnabled(true);
    chart.setDrawMarkers(false);
    chart.setHighlightPerTapEnabled(true);
    chart.setMarker(new YourMarkerView(fragment.requireContext(), R.layout.layout_pop_up));
    chart.setClipChildren(false);
    chart.setClipToPadding(false);


    chart.invalidate();

    chart.notifyDataSetChanged();


}

private ArrayList<ILineDataSet> setLineDataSet() {

    ArrayList<ILineDataSet> dataSet = new ArrayList<>();
    for (int i = 0; i < response.size(); i++) {

        LineDataSet lineDataSet = new LineDataSet(setData(i),
                response.get(i).getName());
        lineDataSet.setLineWidth(3);


        lineDataSet.setColor(this.getResources().getColor(colorArray[i]));
        lineDataSet.setDrawCircleHole(false);
        lineDataSet.setCircleRadius(4);
        lineDataSet.setCircleColors(setColorOfLineDataSet(i));
        dataSet.add(lineDataSet);

    }


    return dataSet;
}

private ArrayList<Integer> setColorOfLineDataSet(int i) {
    ArrayList<Integer> color = new ArrayList<Integer>();

    for (int j = 0; j < response.get(i).size(); j++) {

        if (!response.get(i).isNormal()) {
            color.add(R.color.Red);
        } else {
            color.add(colorArray[i]);
        }
    }

    return color;
}
java android kotlin
1个回答
0
投票

为了自定义Circle形状,可以使用LineDataSet的以下属性:

  • setCircleColor(/ 某些颜色值 /)
  • setCircleRadius(/ *一些浮点值* /)
  • setDrawCircleHole(/ *布尔值* /)
  • setDrawFilled(/ *布尔值* /)

尝试一下,也许您会找到想要的东西。

我已以本文为例:https://www.studytutorial.in/android-line-chart-or-line-graph-using-mpandroid-library-tutorial

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