package com.eyeem.theroll.widgets; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import com.eyeem.theroll.App; import com.eyeem.theroll.R; import org.achartengine.GraphicalView; import org.achartengine.chart.CubicLineChart; import org.achartengine.chart.PointStyle; import org.achartengine.model.XYMultipleSeriesDataset; import org.achartengine.model.XYSeries; import org.achartengine.renderer.DefaultRenderer; import org.achartengine.renderer.XYMultipleSeriesRenderer; import org.achartengine.renderer.XYSeriesRenderer; /** * Created with IntelliJ IDEA. * User: vishna * Date: 4/6/13 * Time: 2:10 PM * To change this template use File | Settings | File Templates. */ public class TimeOfADay extends GraphicalView { ChartSetup setup; public TimeOfADay(Context context, ChartSetup setup) { super(context, setup.chart); this.setup = setup; } public TimeOfADay(Context context) { this(context, initChart()); } public void setValues(int values[]) { setup.currentSeries.setTitle(null); setup.currentSeries.add(1, values[0]); setup.currentSeries.add(2, values[1]); setup.currentSeries.add(3, values[2]); setup.currentSeries.add(4, values[3]); setup.currentRenderer.setLineWidth(4); setup.currentRenderer.setPointStyle(PointStyle.CIRCLE); setup.currentRenderer.setColor(0xffe5b13e); setup.renderer.setLabelsTextSize(getResources().getDimension(R.dimen.label_text_size)*0.66f); setup.renderer.addXTextLabel(1, "morning".toUpperCase()); setup.renderer.addXTextLabel(2, "afternoon".toUpperCase()); setup.renderer.addXTextLabel(3, "evening".toUpperCase()); setup.renderer.addXTextLabel(4, "night".toUpperCase()); setup.renderer.setXLabelsColor(0xff2cddd4); setup.renderer.setXLabels(0); setup.renderer.setYLabels(0); setup.renderer.setXAxisMin(0.5); setup.renderer.setXAxisMax(4.5); setup.renderer.setYAxisMin(0); setup.renderer.setInScroll(true); int max = 0; for (int i = 0; i<values.length; i++) { if (values[i] > max) max = values[i]; } setup.renderer.setYAxisMax(max+max/2); repaint(); } private static class ChartSetup { XYSeries currentSeries; XYSeriesRenderer currentRenderer; XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); CubicLineChart chart; } private static ChartSetup initChart() { ChartSetup s = new ChartSetup(); s.currentSeries = new XYSeries("Data"); s.dataset.addSeries(s.currentSeries); s.currentRenderer = new XYSeriesRenderer(); s.renderer.addSeriesRenderer(s.currentRenderer); s.renderer.setClickEnabled(true); s.renderer.setZoomEnabled(false, false); s.renderer.setPanEnabled(false, false); s.renderer.setMarginsColor(App.the.getResources().getColor(R.color.bg)); s.chart = new CubicLineChart(s.dataset, s.renderer, 0.2f) { @Override protected int drawLegend(Canvas canvas, DefaultRenderer renderer, String[] titles, int left, int right, int y, int width, int height, int legendSize, Paint paint, boolean calculate) { return 0; //return super.drawLegend(canvas, renderer, titles, left, right, y, width, height, legendSize, paint, calculate); //To change body of overridden methods use File | Settings | File Templates. } }; return s; } }