android - 为折线图占据的区域设置特定颜色

标签 android colors linechart mpandroidchart region

我能够动态绘制标记并为 LineChart 设置不同的颜色。现在我遇到问题,无法填充 LineChart 占用的区域中的颜色。我使用了 setS.setDrawFilled(true ); 但它只填充一种颜色。如何解决这个问题?

  int getColorRandom() {
        Random rand = new Random();
        int r = rand.nextInt(255);
        int g = rand.nextInt(255);
        int b = rand.nextInt(255);
        int randomColor = Color.rgb(r, g, b);
        return randomColor;

    }

  ArrayList<ILineDataSet> testDataSet1 = new ArrayList<>();
                            for (int i = 0; i < dataFilteredByTerm.size(); i++) {
                                ArrayList<JSONObject> values = dataFilteredByTerm.get(termIDs.get(i));
                                ArrayList<Entry> allMarks1 = new ArrayList<>();


                                for (int k = 0; k < values.size(); k++) {
                                    allMarks1.add(new Entry(k, values.get(k).optInt("Marks")));

                                }

                                Labels.add(jsonArray.optJSONObject(i).optString("CourseName"));
                                System.out.println("Labels" + Labels);
                                // System.out.println("allMarks" + allMarks1);
                                setS = new LineDataSet(allMarks1, values.get(i).optString("examDescription")); // set different color for each set as your requirement testDataSet.add(set); } chart.setData(new LineData(testDataSet));
                                //testDataSet1.add(labels);


                                testDataSet1.add(setS);
                                setS.setMode(LineDataSet.Mode.CUBIC_BEZIER);
                                setS.setDrawValues(false);
                                // setS.setColor(Integer.parseInt((getColor.get(i))));
                                // int y= setS.setColors(getColor());
                                setS.setDrawFilled(true);
                                setS.setColors(getColorRandom());


                            }


                            //  System.out.println("Date Filtered by Date" + dataFilteredByTerm);
                            YAxis leftAxis = chart.getAxisRight();
                            leftAxis.setEnabled(false);
                            //chart.setBorderColor(Color.RED);


                            chart.setData(new LineData(testDataSet1));
                            chart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(Labels));
                            chart.notifyDataSetChanged();
                            chart.invalidate();

需要图片 enter image description here

获取图像

enter image description here

I don't know where i am doing wrong.Every time the only one Color Fill all the region.How can the Region be Filled with specific line Color using MPAndroidChart

最佳答案

我自己解决了这个问题,只是做了一个简单的调整,就完成了。

刚刚添加了这个内置方法,输出看起来很棒

   setS.setColors(getColorRandom());
                                setS.setDrawFilled(true);
                                setS.setFillColor(getColorRandom());

图片 enter image description here

关于android - 为折线图占据的区域设置特定颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45055465/

相关文章:

java - NullPointerException 关于去另一个 Activity ,android studio

android - 如何知道我的应用程序是否在 Bluestacks 上运行?

c# - 如何创建使用表格作为数据源的折线图?

java - 在 JFreeChart 中将原点从 (0,0) 移动到 (0,50)

java.lang.RuntimeException : Cannot serialize: float

android - 莫斯比 MVI : Inconsistent intent binding behavior

java - 如何从Java中的对象调用RBG参数

css - 表格中的文本和背景颜色

c# - 给定一个颜色对象列表,找到出现频率最高/最少的颜色,并将其作为颜色对象返回

javascript - Chart.js 折线图中最后 3 小时数据值的总和