package org.achartengine.chartdemo.demo.chart; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.achartengine.ChartFactory; import org.achartengine.chart.PointStyle; import org.achartengine.renderer.XYMultipleSeriesRenderer; import org.achartengine.renderer.XYSeriesRenderer; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.graphics.Paint.Align; public class MyChart extends AbstractDemoChart { private static final long HOUR = 3600 * 1000; private static final long DAY = HOUR * 24; private static final int HOURS = 24; @Override public String getName() { return "My Chart"; } @Override public String getDesc() { // TODO Auto-generated method stub return "My Chart"; } @Override public Intent execute(Context context) { String[] titles = new String[] { "In", "Out", "Bandwidth" }; // long now = Math.round(new Date().getTime() / DAY) * DAY; Date curDate = new Date(System.currentTimeMillis());// 获取当前时间 List<Date[]> dateList = new ArrayList<Date[]>(); for (int i = 0; i < titles.length; i++) { Date[] dates = new Date[HOURS]; for (int j = 0; j < HOURS; j++) { dates[j] = new Date(curDate.getYear(), curDate.getMonth(), curDate.getDate(), j, 0, 0); } dateList.add(dates); } List<double[]> values = new ArrayList<double[]>(); values.add(new double[] { 1.2, 1.5, 1.7, 1.5, 1.4, 1.4, 1.3, 1.1, 0.3, 0.2, 2.9, 2.7, 2.6, 2.9, 0.3, 0.6, 0.9, 1.2, 1.6, 1.9, 2.1, 1.7, 1.5, 2.0 }); values.add(new double[] { 1.9, 1.2, 0.9, 0.5, 0.1, 0.5, 0.6, 1.9, 1.9, 1.8, 0.3, 1.4, 2.4, 2.9, 3.0, 1.4, 2.4, 2.0, 1.5, 0.9, 0.5, 1.9, 1.9, 2.5 }); values.add(new double[] { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }); int[] colors = new int[] { Color.GREEN, Color.BLUE, Color.YELLOW }; PointStyle[] styles = new PointStyle[] { PointStyle.POINT, PointStyle.POINT, PointStyle.POINT }; XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles); int length = renderer.getSeriesRendererCount(); for (int i = 0; i < length; i++) { XYSeriesRenderer seriesRenderer = (XYSeriesRenderer) renderer .getSeriesRendererAt(i); seriesRenderer.setFillPoints(true); seriesRenderer.setFillBelowLine(i == 0); seriesRenderer.setFillBelowLineColor(colors[i]); if (i == 2) { seriesRenderer.setLineWidth(5.0f); } else { seriesRenderer.setLineWidth(1.0f); } } setChartSettings(renderer, "Utilization and Status graph", "Hour", "bits pre second", dateList.get(0)[0].getTime(), dateList.get(0)[HOURS - 1].getTime(), 0, 3, Color.LTGRAY, Color.LTGRAY); renderer.setXLabels(12); renderer.setYLabels(10); renderer.setShowGrid(true); renderer.setXLabelsAlign(Align.CENTER); renderer.setYLabelsAlign(Align.RIGHT); renderer.setBackgroundColor(Color.GRAY); renderer.setApplyBackgroundColor(true); Intent intent = ChartFactory.getTimeChartIntent(context, buildDateDataset(titles, dateList, values), renderer, "HH:mm"); return intent; } }