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