3

首先,对不起我的英语不好和新手会员。

我想使用 AchartEngine 在 Piechart 中显示多种颜色的值。

我发现我可以通过

dRenderer.setLabelsColor(Color.BLACK);

但它只能改变一种颜色。

下图是我要显示的(不同值颜色)

在此处输入图像描述

我想为饼图的每个值显示多种颜色。

下面是我的 PieChart 类

public class PieGraphTest {
private double cash, creditCard, debitCard;
public GraphicalView getView(Context context,int cash, int creditCard, int debitCard, int all){
    // Make it to be percentage to represent in the graph
    this.cash = (cash != 0) ? getPercentage(cash,all): 0;
    this.creditCard = (creditCard != 0) ? getPercentage(creditCard,all): 0;
    this.debitCard = (debitCard != 0) ? getPercentage(debitCard,all): 0;

    //data
    double[] values = {this.cash,this.creditCard,this.debitCard}; // 3 items

    CategorySeries series = new CategorySeries("Pie Graph");
    int count = 0;
    String prefix = "";
    for(double value : values){
        if(count == 0) prefix = " CASH  ";
        if(count == 1) prefix = " CREDIT CARD  ";
        if(count == 2) prefix = " DEBIT CARD  ";
        series.add(prefix+value+"% ", value);
        count++;
    }

    int[] colors = new int[] {Color.parseColor("#FFCBA4"), Color.parseColor("#C74646"), Color.parseColor("#A3FFCB")};
    DefaultRenderer dRenderer = new DefaultRenderer();
    for(int color : colors){
        SimpleSeriesRenderer sRenderer = new SimpleSeriesRenderer();

        sRenderer.setColor(color);
        dRenderer.addSeriesRenderer(sRenderer);
    }

    dRenderer.setChartTitle("Pie Chart Demo");
    dRenderer.setChartTitleTextSize(27);
    dRenderer.setZoomButtonsVisible(false);
    dRenderer.setLabelsTextSize(20); //value size
    dRenderer.setLabelsColor(Color.BLACK);
    dRenderer.setLegendTextSize(18);
    dRenderer.setPanEnabled(false);

    return ChartFactory.getPieChartView(context, series, dRenderer);
}// End GraphicalView

private double getPercentage(int data, int allData){
    double temp;
    temp = (data * 100)/allData;
    return temp;
}
}// End PieGraphTest

太感谢了。

4

0 回答 0