有什麼方法可以改變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