Android AChartEngine - 无法在饼图中更改文本颜色

时间:2014-01-14 11:50:02

标签: android achartengine

我正在使用aChartEngine绘制饼图。我需要更改饼图的每种文本颜色。是否有任何可能的方法来实现这一点。任何链接都会有所帮助

4 个答案:

答案 0 :(得分:3)

http://www.achartengine.org/content/javadoc/index.html

在类DefaultRenderer中有一个方法setLabelsColor(int color),但是它改变了整个标签颜色,所以我认为你应该尝试在库源代码中编辑它。

答案 1 :(得分:2)

不,你不能为每个必须编辑库的颜色设置不同

将这些功能放在 DefaultRenderer

 private int[] mLabelsColors = {TEXT_COLOR};

public int[] getLabelsColors() {
    return mLabelsColors;
  }

 public void setLabelsColors(int[] col) {
    // TODO Auto-generated method stub
    mLabelsColors = col;
  }

并在 PieChart 做类似的事情,但要注意数组的大小

  if(i==0)
      drawLabel(canvas, mDataset.getCategory(i), mRenderer, prevLabelsBounds, mCenterX, mCenterY,
          shortRadius, longRadius, currentAngle, angle, left, right, mRenderer.getLabelsColors()[0],
          paint, true, false);
      if(i==1)
        drawLabel(canvas, mDataset.getCategory(i), mRenderer, prevLabelsBounds, mCenterX, mCenterY,
            shortRadius, longRadius, currentAngle, angle, left, right, mRenderer.getLabelsColors()[1],
            paint, true, false);

      if(i==2)
        drawLabel(canvas, mDataset.getCategory(i), mRenderer, prevLabelsBounds, mCenterX, mCenterY,
            shortRadius, longRadius, currentAngle, angle, left, right, mRenderer.getLabelsColors()[2],
            paint, true, false);

      if(i==3)
        drawLabel(canvas, mDataset.getCategory(i), mRenderer, prevLabelsBounds, mCenterX, mCenterY,
            shortRadius, longRadius, currentAngle, angle, left, right, mRenderer.getLabelsColors()[3],
            paint, true, false);

你在哪里创建chard使用

int Col[] ={Color.BLACK,Color.BLUE,Color.CYAN,Color.GREEN,Color.RED};

    mRenderer.setLabelsColors(Col);

答案 2 :(得分:1)

这就是我所做的。

我从http://achartengine.googlecode.com/svn/trunk/编辑了aChartEngine代码库。我对drawLabel(...)方法进行了一些更改以实现我的要求

答案 3 :(得分:0)

您需要维护以下link

中提到的颜色数组