О 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);
Поскольку на дисплее моего приложения будет отображаться черный фон.
скриншот ошибки 1
скриншот ошибки 2