【发布时间】:2014-01-14 21:32:35
【问题描述】:
我正在使用 aChartEngine 绘制饼图。我需要更改饼图的每个文本颜色。有没有可能的方法来实现这一点。任何链接都会有所帮助
【问题讨论】:
标签: android achartengine
我正在使用 aChartEngine 绘制饼图。我需要更改饼图的每个文本颜色。有没有可能的方法来实现这一点。任何链接都会有所帮助
【问题讨论】:
标签: android achartengine
http://www.achartengine.org/content/javadoc/index.html
在类 DefaultRenderer 中有一个方法 setLabelsColor(int color) 但它改变了整个标签的颜色,所以我认为你应该尝试在库源代码中编辑它。
【讨论】:
不,你不能设置不同的颜色,你必须编辑库
将这些函数放入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);
【讨论】:
这就是我所做的。
我从 http://achartengine.googlecode.com/svn/trunk/ 编辑了 aChartEngine 代码库。我对 drawLabel(...) 方法进行了一些更改以满足我的要求
【讨论】:
您需要维护下面link中提到的一组颜色
【讨论】: