关于 Android 的 SDK
我使用 PaletteProviderBase 来设置 ColumnChart 的颜色。但我发现一个关于 strokeColor 的错误是错误的。
1、部分柱子不能画笔画。
2、部分柱状图绘制错误的笔画颜色。
我的代码:
private class ColumnsPaletteProvider extends PaletteProviderBase<FastColumnRenderableSeries> implements IFillPaletteProvider , IStrokePaletteProvider {
private final IntegerValues colors = new IntegerValues();
private final int[] desiredColors;
protected ColumnsPaletteProvider() {
super(FastColumnRenderableSeries.class);
desiredColors = new int[]{Color.RED, Color.GREEN, Color.TRANSPARENT};
}
@Override
public void update() {
ColumnRenderPassData passData = (ColumnRenderPassData) this.renderableSeries.getCurrentRenderPassData();
final int size = passData.pointsCount();
colors.setSize(size);
XyzDataSeries<Date, Double, Double> series = (XyzDataSeries<Date, Double, Double>) renderableSeries.getDataSeries();
int startIndex = passData.xPointRange.getMin();
int dataCount = series.getCount();
final int[] colorsArray = colors.getItemsArray();
for (int i = 0; i < size; i++) {
int index = startIndex + i;
if (index >= dataCount)
{
colorsArray[i] = desiredColors[2];
}
else
{
double direction = series.getZValues().get(index);
if (direction == 1)
{
colorsArray[i] = desiredColors[0];
}
else
{
colorsArray[i] = desiredColors[1];
}
}
}
}
@Override
public IntegerValues getFillColors() {
return colors;
}
@Override
public IntegerValues getStrokeColors() {
return colors;
}
}
我发现当我设置 Surface.setRenderSurface() 时会显示这些错误。
RenderSurface renderSurface = new RenderSurface(surface.getContext());
renderSurface.setBackgroundColor(Color.TRANSPARENT);
mSurface.setRenderSurface(renderSurface);
因为我的应用程序显示将显示黑色背景。