Как я могу установить цвет поля из текущей темы?

После установки новых тем AChartEngine больше не учитывает фон по умолчанию, исходящий от тем. Я предпринял несколько попыток решить эту проблему, но безуспешно. Что мне нужно сделать?

Настройки от styles.xml:

res/values/styles.xml: <style name="AppTheme" parent="android:Theme.Holo.Light" />
res/values-v11/styles.xml: <style name="AppTheme" parent="android:Theme.Light" />

Часть манифеста:

<application
    ...
    android:theme="@style/AppTheme" >

Пример кода:

XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(timeSeries);

XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setAxesColor(Color.GRAY);
renderer.setAxisTitleTextSize(16);
renderer.setChartTitle(label);
renderer.setChartTitleTextSize(20);
renderer.setGridColor(Color.GRAY);
renderer.setLabelsColor(Color.LTGRAY);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15);
renderer.setMargins(new int[] {
        20, 30, 15, 0
});
renderer.setPointSize((float) 5.0);
renderer.setShowGrid(true);
renderer.setXLabels(10);
renderer.setXTitle(getString(R.string.txt_datum));
renderer.setYLabels(10);
renderer.setYTitle(MyPreferenceActivity.getWaehrung());
renderer.setZoomButtonsVisible(true);

int[] colors = new int[] {
        Color.RED
};
PointStyle[] pointStyles = new PointStyle[] {
        PointStyle.POINT
};
for (int i = 0; i < colors.length; i++) {
    XYSeriesRenderer tempRenderer = new XYSeriesRenderer();
    tempRenderer.setColor(colors[i]);
    tempRenderer.setPointStyle(pointStyles[i]);
    renderer.addSeriesRenderer(tempRenderer);
}

GraphicalView graphicalView = ChartFactory.getTimeChartView(this,
        dataset, renderer, null);

layout.addView(graphicalView, new LayoutParams(LayoutParams.FILL_PARENT,
        LayoutParams.FILL_PARENT));

Результирующее изображение. Откуда берется неправильный черный фон?

введите здесь описание изображения


person Harald Wilhelm    schedule 05.11.2012    source источник


Ответы (2)


да, может быть, это ошибка, AChartEngine больше не учитывает фон по умолчанию, исходящий из тем. возможное решение - установить цвет поля.

renderer.setMarginsColor(Color.WHITE);

см. здесь и здесь.

person Narendrasinh Dodiya    schedule 20.11.2012

Вероятно, вам следует вручную установить фон диаграммы.

renderer.setApplyBackgroundColor(true);
renderer.setBackgroundColor(color);
person Dan D.    schedule 05.11.2012