有什么方法可以改变achartengine
折线图的线条点颜色从白色到黑色?安卓achartengine,改变点价值颜色
在下面的图像中,我想将颜色2700,2500等从白色变为黑色。
这里是我的代码:
private void openChart() {
int count = 5;
Date[] dt = new Date[5];
for (int i = 0; i < count; i++) {
GregorianCalendar gc = new GregorianCalendar(2014, 10, i + 1);
dt[i] = gc.getTime();
}
int[] visits = {2000, 2500, 2700, 2100, 2800};
// Creating TimeSeries for Visits
TimeSeries visitsSeries = new TimeSeries("BMR Rate");
// Adding data to Visits Series
for (int i = 0; i < dt.length; i++)
visitsSeries.add(dt[i], visits[i]);
// Creating a dataset to hold each series
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
// Adding Visits Series to the dataset
dataset.addSeries(visitsSeries);
// Creating XYSeriesRenderer to customize visitsSeries
XYSeriesRenderer visitsRenderer = new XYSeriesRenderer();
visitsRenderer.setColor(Color.WHITE);
visitsRenderer.setPointStyle(PointStyle.SQUARE);
visitsRenderer.setFillPoints(true);
visitsRenderer.setLineWidth(3);
visitsRenderer.setDisplayChartValues(true);
XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();
multiRenderer.setChartTitle("Body Mass Index");
// multiRenderer.setMargins(new int[]{0, 0, 0, 10});
multiRenderer.setApplyBackgroundColor(true);
// multiRenderer.setPointSize(15);
multiRenderer.setLabelsColor(Color.WHITE);
multiRenderer.setGridColor(Color.RED);
multiRenderer.setMarginsColor(Color.parseColor("#54D66A"));
multiRenderer.setYLabelsColor(0,Color.WHITE);
multiRenderer.setXLabelsColor(Color.WHITE);
multiRenderer.setXTitle("Days");
multiRenderer.setYTitle("Count");
multiRenderer.setZoomButtonsVisible(true);
// Adding visitsRenderer and viewsRenderer to multipleRenderer
// Note: The order of adding dataseries to dataset and renderers to multipleRenderer
// should be same
multiRenderer.addSeriesRenderer(visitsRenderer);
// multiRenderer.addSeriesRenderer(viewsRenderer);
// Getting a reference to LinearLayout of the MainActivity Layout
LinearLayout chartContainer = (LinearLayout) findViewById(R.id.chart_container);
// Creating a Time Chart
mChart = (GraphicalView) ChartFactory.getTimeChartView(getBaseContext(), dataset, multiRenderer, "dd-MMM-yyyy");
multiRenderer.setClickEnabled(true);
multiRenderer.setSelectableBuffer(10);
// Setting a click event listener for the graph
mChart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Format formatter = new SimpleDateFormat("dd-MM");
SeriesSelection seriesSelection = mChart.getCurrentSeriesAndPoint();
if (seriesSelection != null) {
int seriesIndex = seriesSelection.getSeriesIndex();
String selectedSeries = "Visits";
if (seriesIndex == 0)
selectedSeries = "Visits";
else
selectedSeries = "Views";
// Getting the clicked Date (x value)
long clickedDateSeconds = (long) seriesSelection.getXValue();
Date clickedDate = new Date(clickedDateSeconds);
String strDate = formatter.format(clickedDate);
// Getting the y value
int amount = (int) seriesSelection.getValue();
// Displaying Toast Message
Toast.makeText(
getBaseContext(),
selectedSeries + " on " + strDate + " : " + amount ,
Toast.LENGTH_SHORT).show();
}
}
});
// Adding the Line Chart to the LinearLayout
chartContainer.addView(mChart);
}
没有一分先生。我想改变所有的值如明智2000,2500,2700,2100,2800。这可能先生吗? – 2014-11-25 12:56:02
先生哪一个。请详细说明 – 2014-11-25 12:59:31
对不起,切断了......实际上,如果你想让这些点成为与该线不同的颜色,那么它的答案就相同了 - 渲染器的子类。如果您希望点和线条具有相同的颜色,但不是白色,请使用渲染器的setColor方法设置不同的颜色。 – GreyBeardedGeek 2014-11-25 13:05:00