Achartengine:有没有办法在Piechart中为标签显示多种颜色?

时间:2013-10-23 09:12:43

标签: android colors charts achartengine pie-chart

首先,抱歉我的英语和新手成员不好。

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

我发现我可以通过

更改颜色值
  

dRenderer.setLabelsColor(Color.BLACK);

但它只能改变一种颜色。

下面的图片是我要显示的内容(针对不同的颜色值)

enter image description here

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

以下是我的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

非常感谢你。

0 个答案:

没有答案