16224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalapackage com.androidplot.demos;
26224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
36224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalaimport android.app.Activity;
46224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalaimport android.graphics.*;
56224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalaimport android.os.Bundle;
66224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalaimport android.view.View;
76224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalaimport android.widget.ToggleButton;
86224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalaimport com.androidplot.xy.*;
96224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
106224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalaimport java.text.DecimalFormat;
116224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalaimport java.util.Arrays;
126224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
136224eda509d436a575f801942337da92a6c18767Eino-Ville Talvalapublic class XYPlotWithBgImgActivity extends Activity {
146224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala    private static final String TAG = XYPlotWithBgImgActivity.class.getName();
156224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
166224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala	private int SERIES_LEN = 50;
176224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala	private Shader WHITE_SHADER = new LinearGradient(1, 1, 1, 1, Color.WHITE, Color.WHITE, Shader.TileMode.REPEAT);
186224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
196224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala	private XYPlot plot;
206224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala	private SimpleXYSeries series;
216224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
226224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala	@Override
236224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala	protected void onCreate(Bundle savedInstanceState) {
246224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala		super.onCreate(savedInstanceState);
256224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala		setContentView(R.layout.xy_plot_with_bq_img_example);
266224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
276224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala		plot = (XYPlot) findViewById(R.id.graph_metrics);
286224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
296224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala		//For debugging.
306224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        //plot.setMarkupEnabled(true);
316224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
326224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        // Format Graph
336224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.getGraphWidget().getBackgroundPaint().setColor(Color.TRANSPARENT);
346224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.getGraphWidget().getGridBackgroundPaint().setShader(WHITE_SHADER);
356224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.getGraphWidget().getDomainGridLinePaint().setColor(Color.BLACK);
366224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.getGraphWidget().getDomainGridLinePaint().setPathEffect(new DashPathEffect(new float[]{3, 3}, 1));
376224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.getGraphWidget().getRangeGridLinePaint().setColor(Color.BLACK);
386224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.getGraphWidget().getRangeGridLinePaint().setPathEffect(new DashPathEffect(new float[]{3, 3}, 1));
396224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.getGraphWidget().getDomainOriginLinePaint().setColor(Color.BLACK);
406224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.getGraphWidget().getRangeOriginLinePaint().setColor(Color.BLACK);
416224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        //plot.getGraphWidget().setMarginTop(10);
426224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
436224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        // Customize domain and range labels.
446224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.setDomainLabel("x-vals");
456224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.setRangeLabel("y-vals");
466224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.setRangeValueFormat(new DecimalFormat("0"));
476224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
486224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        // Make the domain and range step correctly
496224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.setRangeBoundaries(40, 160, BoundaryMode.FIXED);
506224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.setRangeStep(XYStepMode.INCREMENT_BY_VAL, 20);
516224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.setDomainStep(XYStepMode.INCREMENT_BY_VAL, 60);
526224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.setTicksPerDomainLabel(2);
536224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
546224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        series = (SimpleXYSeries) getSeries();
556224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala		LineAndPointFormatter lpFormat = new LineAndPointFormatter(
566224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala				Color.BLACK,
576224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala				Color.BLACK,
586224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala				null, // No fill
596224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala				new PointLabelFormatter(Color.TRANSPARENT) // Don't show text at points
606224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala		);
616224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.addSeries(series, lpFormat);
626224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.redraw();
636224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala	}
646224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
656224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala	private SimpleXYSeries getSeries() {
666224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala		Integer[] xVals = new Integer[SERIES_LEN];
676224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala		Integer[] yVals = new Integer[SERIES_LEN];
686224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
696224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala		xVals[0] = 0;
706224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala		yVals[0] = 0;
716224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
726224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        for (int i = 1; i < SERIES_LEN; i += 1){
736224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        	xVals[i] = xVals[i-1] + (int)(Math.random() * i);
746224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        	yVals[i] = (int)(Math.random() * 140);
756224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        }
766224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
776224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        return new SimpleXYSeries(
786224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        		Arrays.asList(xVals),
796224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        		Arrays.asList(yVals),
806224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        		"Sample Series");
816224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala	}
826224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
836224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala	public void onGraphStyleToggle(View v) {
846224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala		boolean styleOn = ((ToggleButton) v).isChecked();
856224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
866224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        /*RectF graphRect = plot.getGraphWidget().getGridRect();
876224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        float segmentSize = 1.0f/6.0f;
886224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        LinearGradient lg = new LinearGradient(
896224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                0,
906224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                graphRect.top,
916224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                0,
926224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                graphRect.bottom,
936224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                new int[]{
946224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                        Color.RED,
956224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                        Color.YELLOW,
966224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                        Color.GREEN,
976224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                        Color.WHITE},
986224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                new float[]{
996224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                        0,
1006224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                        segmentSize*2,
1016224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                        segmentSize*3,
1026224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                        segmentSize*5
1036224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                },
1046224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                Shader.TileMode.REPEAT
1056224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        );
1066224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.getGraphWidget().getGridBackgroundPaint().setShader(lg);*/
1076224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1086224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        RectF rect = plot.getGraphWidget().getGridRect();
1096224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        BitmapShader myShader = new BitmapShader(
1106224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                Bitmap.createScaledBitmap(
1116224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                        BitmapFactory.decodeResource(
1126224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                                getResources(),
1136224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                                R.drawable.graph_background),
1146224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                        1,
1156224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                        (int) rect.height(),
1166224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                        false),
1176224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                Shader.TileMode.REPEAT,
1186224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala                Shader.TileMode.REPEAT);
1196224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        Matrix m = new Matrix();
1206224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        m.setTranslate(rect.left, rect.top);
1216224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        myShader.setLocalMatrix(m);
1226224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        if (styleOn)
1236224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala	        plot.getGraphWidget().getGridBackgroundPaint().setShader(
1246224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala	        		myShader);
1256224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala		else
1266224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala			plot.getGraphWidget().getGridBackgroundPaint().setShader(WHITE_SHADER);
1276224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1286224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala        plot.redraw();
1296224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala
1306224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala	}
1316224eda509d436a575f801942337da92a6c18767Eino-Ville Talvala}
132