private void generateInitialLineData() { int numValues = 7; List<AxisValue> axisValues = new ArrayList<AxisValue>(); List<PointValue> values = new ArrayList<PointValue>(); for (int i = 0; i < numValues; ++i) { values.add(new PointValue(i, 0)); axisValues.add(new AxisValue(i).setLabel(days[i])); } Line line = new Line(values); line.setColor(ChartUtils.COLOR_GREEN).setCubic(true); List<Line> lines = new ArrayList<Line>(); lines.add(line); lineData = new LineChartData(lines); lineData.setAxisXBottom(new Axis(axisValues).setHasLines(true)); lineData.setAxisYLeft(new Axis().setHasLines(true).setMaxLabelChars(3)); chartTop.setLineChartData(lineData); // For build-up animation you have to disable viewport recalculation. chartTop.setViewportCalculationEnabled(false); // And set initial max viewport and current viewport- remember to set viewports after data. Viewport v = new Viewport(0, 110, 6, 0); chartTop.setMaximumViewport(v); chartTop.setCurrentViewport(v); chartTop.setZoomType(ZoomType.HORIZONTAL); generateLineData(ChartUtils.COLOR_GREEN, 100); }
// 产生数据 实时 ///////////////////////////////////////////////////////////////////////////////////////// private void generateInitialLineData() { int numValues = 19; List<AxisValue> axisValues = new ArrayList<AxisValue>(); List<PointValue> values = new ArrayList<PointValue>(); for (int i = 0; i < numValues; ++i) { values.add(new PointValue(i, 0)); axisValues.add(new AxisValue(i).setLabel(days[i])); } Line line = new Line(values); line.setColor(ChartUtils.COLOR_BLUE); line.setHasPoints(false); line.getShape(); line.setCubic(false); // 平滑 List<Line> lines = new ArrayList<Line>(); lines.add(line); // lines.add(line1); // lines.add(line2); Axis axisX = new Axis(axisValues); Axis axisY = new Axis().setHasLines(true); if (hasAxesNames) { axisX.setName("时间间隔"); // axisY.setName("温度"); axisX.setTextColor(ChartUtils.HOLO_BLUE_DARK); axisY.setTextColor(ChartUtils.HOLO_BLUE_DARK); } lineData = new LineChartData(lines); lineData.setAxisXBottom(axisX.setHasLines(true)); lineData.setAxisYLeft(axisY.setMaxLabelChars(4)); realeChartTop.setLineChartData(lineData); // For build-up animation you have to disable viewport recalculation. // 建立动画你必须禁用视图重新计算。 realeChartTop.setViewportCalculationEnabled(false); // And set initial max viewport and current viewport- remember to set viewports after data. // 设置初始值和当前视口视口记得要在数据集视图。 Viewport v = new Viewport(0, 50, 20, -10); realeChartTop.setMaximumViewport(v); realeChartTop.setCurrentViewport(v); realeChartTop.setZoomType(ZoomType.HORIZONTAL); // toggleFilled(); // toggleLabels(); toggleAxesNames(); }
public void setupCharts() { if (bgDataList.size() > 0) { // Dont crash things just because we dont have values, people dont like crashy things if (singleLine) { bgGraphBuilder = new BgGraphBuilder(getApplicationContext(), bgDataList, pointSize, midColor); } else { bgGraphBuilder = new BgGraphBuilder( getApplicationContext(), bgDataList, pointSize, highColor, lowColor, midColor); } chart.setLineChartData(bgGraphBuilder.lineData()); chart.setViewportCalculationEnabled(true); chart.setMaximumViewport(chart.getMaximumViewport()); } else { ListenerService.requestData(this); } }
public void setupChart() { basalvsTempBasalChart.setZoomType(ZoomType.HORIZONTAL); basalvsTempBasalChart.setLineChartData(extendedGraphBuilder.basalvsTempBasalData()); Viewport iobv = new Viewport( basalvsTempBasalChart .getMaximumViewport()); // Sets the min and max for Top and Bottom of the // viewpoint iobv.top = extendedGraphBuilder.maxBasal.floatValue(); iobv.bottom = -(extendedGraphBuilder.maxBasal.floatValue() - 1); basalvsTempBasalChart.setMaximumViewport(iobv); iobv.left = previewChart.getCurrentViewport().left; iobv.right = previewChart.getCurrentViewport().right; basalvsTempBasalChart.setCurrentViewport(iobv); basalvsTempBasalChart.setViewportCalculationEnabled(true); // iobcobPastChart.setViewportChangeListener(new ChartViewPortListener()); // //causes a crash, no idea why #// TODO: 28/08/2015 }
public void setupChart() { iobcobPastChart.setZoomType(ZoomType.HORIZONTAL); iobcobPastChart.setLineChartData(extendedGraphBuilder.iobcobPastLineData()); Viewport iobv = new Viewport( iobcobPastChart .getMaximumViewport()); // Sets the min and max for Top and Bottom of the // viewpoint iobv.top = Float.parseFloat(extendedGraphBuilder.yCOBMax.toString()); iobv.bottom = Float.parseFloat(extendedGraphBuilder.yCOBMin.toString()); iobcobPastChart.setMaximumViewport(iobv); iobv.left = previewChart.getCurrentViewport().left; iobv.right = previewChart.getCurrentViewport().right; iobcobPastChart.setCurrentViewport(iobv); iobcobPastChart.setViewportCalculationEnabled(true); // iobcobPastChart.setViewportChangeListener(new ChartViewPortListener()); // //causes a crash, no idea why #// TODO: 28/08/2015 }
public void setupCharts() { // BG charts updateStuff = false; chart = (LineChartView) findViewById(R.id.chart); chart.setZoomType(ZoomType.HORIZONTAL); previewChart = (PreviewLineChartView) findViewById(R.id.chart_preview); previewChart.setZoomType(ZoomType.HORIZONTAL); chart.setLineChartData(extendedGraphBuilder.lineData()); previewChart.setLineChartData(extendedGraphBuilder.previewLineData()); updateStuff = true; previewChart.setViewportCalculationEnabled(true); chart.setViewportCalculationEnabled(true); previewChart.setViewportChangeListener(new ViewportListener()); chart.setViewportChangeListener(new ChartViewPortListener()); setViewport(); }
public void setupCharts() { bgGraphBuilder = new BgGraphBuilder(this); updateStuff = false; chart = (LineChartView) findViewById(R.id.chart); if (BgGraphBuilder.isXLargeTablet(getApplicationContext())) { ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) chart.getLayoutParams(); params.topMargin = 130; chart.setLayoutParams(params); } chart.setZoomType(ZoomType.HORIZONTAL); // Transmitter Battery Level final Sensor sensor = Sensor.currentSensor(); if (sensor != null && sensor.latest_battery_level != 0 && sensor.latest_battery_level <= Constants.TRANSMITTER_BATTERY_LOW) { Drawable background = new Drawable() { @Override public void draw(Canvas canvas) { DisplayMetrics metrics = getApplicationContext().getResources().getDisplayMetrics(); int px = (int) (30 * (metrics.densityDpi / 160f)); Paint paint = new Paint(); paint.setTextSize(px); paint.setAntiAlias(true); paint.setColor(Color.parseColor("#FFFFAA")); paint.setStyle(Paint.Style.STROKE); paint.setAlpha(100); canvas.drawText( "transmitter battery", 10, chart.getHeight() / 3 - (int) (1.2 * px), paint); if (sensor.latest_battery_level <= Constants.TRANSMITTER_BATTERY_EMPTY) { paint.setTextSize((int) (px * 1.5)); canvas.drawText("VERY LOW", 10, chart.getHeight() / 3, paint); } else { canvas.drawText("low", 10, chart.getHeight() / 3, paint); } } @Override public void setAlpha(int alpha) {} @Override public void setColorFilter(ColorFilter cf) {} @Override public int getOpacity() { return 0; } }; chart.setBackground(background); } previewChart = (PreviewLineChartView) findViewById(R.id.chart_preview); previewChart.setZoomType(ZoomType.HORIZONTAL); chart.setLineChartData(bgGraphBuilder.lineData()); previewChart.setLineChartData(bgGraphBuilder.previewLineData()); updateStuff = true; previewChart.setViewportCalculationEnabled(true); chart.setViewportCalculationEnabled(true); previewChart.setViewportChangeListener(new ViewportListener()); chart.setViewportChangeListener(new ChartViewPortListener()); setViewport(); }