Android中的MPChart按自定义值构建饼图

Android中的MPChart按自定义值构建饼图,android,charts,pie-chart,mpandroidchart,Android,Charts,Pie Chart,Mpandroidchart,这是库setData的方法。我有四个值q1、q2、q3、q4,总共四个值,所以我的总数应该是10000q1=1000、q2=500、q3=500、q4=8000。那么,我如何在这里传递所有这些值并生成我自己的图表呢?看,这些数据来自我的API,所以对于每个用户来说,如果数据不同,那么图表是根据这些数据值构建的 private void setData(int count, float range){ float mult = range; ArrayList<En

这是库setData的方法。我有四个值
q1、q2、q3、q4,总共四个值,所以我的总数应该是10000
q1=1000、q2=500、q3=500、q4=8000
。那么,我如何在这里传递所有这些值并生成我自己的图表呢?看,这些数据来自我的API,所以对于每个用户来说,如果数据不同,那么图表是根据这些数据值构建的

   private void setData(int count, float range){

    float mult = range;

    ArrayList<Entry> yVals1 = new ArrayList<Entry>();

    // IMPORTANT: In a PieChart, no values (Entry) should have the same
    // xIndex (even if from different DataSets), since no values can be
    // drawn above each other.
    for (int i = 0; i < count + 1; i++) {
      //yVals1.add(new Entry((float) (Math.random() * mult) + mult / 5, i));
        yVals1.add(new Entry((float)(dislikeval), i));
    }

    ArrayList<String> xVals = new ArrayList<String>();

    for (int i = 0; i < count + 1; i++)
        xVals.add(mParties[i % mParties.length]);

    PieDataSet dataSet = new PieDataSet(yVals1, "Election Results");
    dataSet.setSliceSpace(2f);
    dataSet.setSelectionShift(5f);

    // add a lot of colors
    ArrayList<Integer> colors = new ArrayList<Integer>();
    for (int c : ColorTemplate.VORDIPLOM_COLORS)
        colors.add(c);

    for (int c : ColorTemplate.JOYFUL_COLORS)
        colors.add(c);

    for (int c : ColorTemplate.COLORFUL_COLORS)
        colors.add(c);

    for (int c : ColorTemplate.LIBERTY_COLORS)
        colors.add(c);

    for (int c : ColorTemplate.PASTEL_COLORS)
        colors.add(c);

    colors.add(ColorTemplate.getHoloBlue());

    dataSet.setColors(colors);
    //dataSet.setSelectionShift(0f);

    PieData data = new PieData(xVals, dataSet);
    data.setValueFormatter(new PercentFormatter());
    data.setValueTextSize(11f);
    data.setValueTextColor(Color.WHITE);
    data.setValueTypeface(tf);
    mChart.setData(data);

    // undo all highlights
    mChart.highlightValues(null);

    mChart.invalidate();
}
private void setData(整数计数,浮点范围){
浮动倍数=范围;
ArrayList yVals1=新的ArrayList();
//重要提示:在PieChart中,任何值(条目)都不应具有相同的值
//xIndex(即使来自不同的数据集),因为没有值可以
//在彼此之上画的。
对于(int i=0;i
您可以使用以下代码执行此操作:

private void setData() {
        // Label for each slice
        String[] valueArray = new String[] { "Q1", "Q2", "Q3" };
        // Values for pie chart
        ArrayList<Entry> yVals1 = new ArrayList<Entry>();
        yVals1.add(new Entry(1000, 0));
        yVals1.add(new Entry(2000, 2));
        yVals1.add(new Entry(3000, 1));

        ArrayList<String> xVals = new ArrayList<String>();

        for (int i = 0; i < valueArray.length + 1; i++)
            xVals.add(valueArray[i % valueArray.length]);

        PieDataSet dataSet = new PieDataSet(yVals1, "");
        dataSet.setSliceSpace(2f);
        dataSet.setSelectionShift(5f);

        // add a lot of colors

        ArrayList<Integer> colors = new ArrayList<Integer>();

        for (int c : ColorTemplate.VORDIPLOM_COLORS)
            colors.add(c);

        for (int c : ColorTemplate.JOYFUL_COLORS)
            colors.add(c);

        for (int c : ColorTemplate.COLORFUL_COLORS)
            colors.add(c);

        for (int c : ColorTemplate.LIBERTY_COLORS)
            colors.add(c);

        for (int c : ColorTemplate.PASTEL_COLORS)
            colors.add(c);

        colors.add(ColorTemplate.getHoloBlue());

        dataSet.setColors(colors);
        //dataSet.setSelectionShift(0f);

        PieData data = new PieData(xVals, dataSet);
        data.setValueFormatter(new PercentFormatter());
        data.setValueTextSize(12f);
        data.setValueTextColor(Color.WHITE);
        data.setValueTypeface(tf);
        mChart.setData(data);

        // undo all highlights
        mChart.highlightValues(null);

        mChart.invalidate();
    }
private void setData(){
//每个切片的标签
字符串[]valueArray=新字符串[]{“Q1”、“Q2”、“Q3”};
//饼图的值
ArrayList yVals1=新的ArrayList();
yVals1.添加(新条目(1000,0));
yVals1.add(新条目(2000,2));
yVals1.添加(新条目(3000,1));
ArrayList xVals=新的ArrayList();
对于(int i=0;i
它没有生成piechartu r,也从服务器获取数据否,我使用的是sqlite数据库,我刚刚更改了此函数,并将数组作为值和标签的参数传递