Java Examples for org.achartengine.model.XYMultipleSeriesDataset
The following java examples will help you to understand the usage of org.achartengine.model.XYMultipleSeriesDataset. These source code samples are taken from different open source projects.
Example 1
| Project: ohmagePhone-master File: ChartFactory.java View source code |
/**
* Creates a combined XY chart view.
*
* @param context the context
* @param dataset the multiple series dataset (cannot be null)
* @param renderer the multiple series renderer (cannot be null)
* @param types the chart types (cannot be null)
* @return a combined XY chart graphical view
* @throws IllegalArgumentException if dataset is null or renderer is null or
* if a dataset number of items is different than the number of
* series renderers or number of chart types
*/
public static final GraphicalView getCombinedXYChartView(Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, String[] types) {
if (dataset == null || renderer == null || types == null || dataset.getSeriesCount() != types.length) {
throw new IllegalArgumentException("Dataset, renderer and types should be not null and the datasets series count should be equal to the types length");
}
checkParameters(dataset, renderer);
CombinedXYChart chart = new CombinedXYChart(dataset, renderer, types);
return new GraphicalView(context, chart);
}Example 2
| Project: sensorreadout-master File: ChartFactory.java View source code |
/**
* Creates a combined XY chart view.
*
* @param context the context
* @param dataset the multiple series dataset (cannot be null)
* @param renderer the multiple series renderer (cannot be null)
* @param types the chart types (cannot be null)
* @return a combined XY chart graphical view
* @throws IllegalArgumentException if dataset is null or renderer is null or
* if a dataset number of items is different than the number of
* series renderers or number of chart types
*/
public static final GraphicalView getCombinedXYChartView(Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, String[] types) {
if (dataset == null || renderer == null || types == null || dataset.getSeriesCount() != types.length) {
throw new IllegalArgumentException("Dataset, renderer and types should be not null and the datasets series count should be equal to the types length");
}
checkParameters(dataset, renderer);
CombinedXYChart chart = new CombinedXYChart(dataset, renderer, types);
return new GraphicalView(context, chart);
}Example 3
| Project: AChartEngine-master File: ChartFactory.java View source code |
/**
* Creates a time chart intent that can be used to start the graphical view
* activity.
*
* @param context the context
* @param dataset the multiple series dataset (cannot be null)
* @param renderer the multiple series renderer (cannot be null)
* @param format the date format pattern to be used for displaying the X axis
* date labels. If null, a default appropriate format will be used
* @param activityTitle the graphical chart activity title
* @return a time chart intent
* @throws IllegalArgumentException if dataset is null or renderer is null or
* if the dataset and the renderer don't include the same number of
* series
*/
public static final Intent getTimeChartIntent(Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, String format, String activityTitle) {
checkParameters(dataset, renderer);
Intent intent = new Intent(context, GraphicalActivity.class);
TimeChart chart = new TimeChart(dataset, renderer);
chart.setDateFormat(format);
intent.putExtra(CHART, chart);
intent.putExtra(TITLE, activityTitle);
return intent;
}Example 4
| Project: AndroidChatDemo-master File: GeneratedChartDemo.java View source code |
private XYMultipleSeriesDataset getDemoDataset() { XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); final int nr = 10; Random r = new Random(); for (int i = 0; i < SERIES_NR; i++) { XYSeries series = new XYSeries("Demo series " + (i + 1)); for (int k = 0; k < nr; k++) { series.add(k, 20 + r.nextInt() % 100); } dataset.addSeries(series); } return dataset; }
Example 5
| Project: open_robot-master File: UpdatingChartActivity.java View source code |
public XYMultipleSeriesDataset buildDateDataset(String[] titles, List<Date[]> xValues, List<double[]> yValues) { XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); int length = titles.length; for (int i = 0; i < length; i++) { XYSeries series = new XYSeries(titles[i]); Date[] xV = xValues.get(i); double[] yV = yValues.get(i); int seriesLength = xV.length; for (int k = 0; k < seriesLength; k++) { series.add(xV[k].getTime(), yV[k]); } dataset.addSeries(series); } return dataset; }
Example 6
| Project: skandroid-core-master File: SKGraphForResults.java View source code |
//private int mFillColorEnd = Color.argb(0xff, 0x6d, 0xad, 0xce);
private void createChartRendererSeriesAndView(Context context) {
// The color values are from the iOS version...
//int areaTopColor = Color.argb(0xff, 0xb8, 0xd3, 0xe1);
//SKApplication appInstance = SKApplication.getAppInstance();
//Context context = appInstance.getApplicationContext();
Resources resources = context.getResources();
int areaEndColor = resources.getColor(R.color.GraphColourTopAreaFill);
int lineColor = resources.getColor(R.color.GraphColourTopLine);
int gridLineColor = resources.getColor(R.color.GraphColourVerticalGridLine);
// Create the multiple-series renderer... you might have more than one series
// plotted at once, if you wanted, through this API...
// XYMultipleSeriesRenderer multipleSeriesRenderer = new XYMultipleSeriesRenderer();
multipleSeriesRenderer = new XYMultipleSeriesRenderer();
multipleSeriesRenderer.setApplyBackgroundColor(true);
// This is the graph BACKGROUND color
multipleSeriesRenderer.setBackgroundColor(Color.WHITE);
// This is the color that SURROUNDS the graph
multipleSeriesRenderer.setMarginsColor(Color.WHITE);
multipleSeriesRenderer.setAntialiasing(true);
multipleSeriesRenderer.setChartTitle("");
multipleSeriesRenderer.setClickEnabled(false);
// Always show both axes
multipleSeriesRenderer.setAxesColor(Color.LTGRAY);
//multipleSeriesRenderer.setAxesColor(Color.TRANSPARENT);
multipleSeriesRenderer.setLabelsColor(Color.BLACK);
multipleSeriesRenderer.setXLabelsColor(Color.BLACK);
// 0 is the scale - a mystery value!
multipleSeriesRenderer.setYLabelsColor(0, Color.BLACK);
multipleSeriesRenderer.setYLabelsPadding(5);
multipleSeriesRenderer.setYLabelsAlign(Paint.Align.RIGHT);
// Needs to be fairly, to cater for e.g. 0.008 type values!
multipleSeriesRenderer.setLabelsTextSize(12);
NumberFormat format = NumberFormat.getNumberInstance();
format.setMaximumFractionDigits(3);
multipleSeriesRenderer.setLabelFormat(format);
//multipleSeriesRenderer.setChartValuesFormat(format);
multipleSeriesRenderer.setLegendTextSize(15);
multipleSeriesRenderer.setPanEnabled(false);
//multipleSeriesRenderer.setPointSize(3f);
multipleSeriesRenderer.setShowAxes(true);
multipleSeriesRenderer.setShowGridX(false);
multipleSeriesRenderer.setShowGridY(true);
multipleSeriesRenderer.setGridColor(gridLineColor);
multipleSeriesRenderer.setShowLegend(false);
multipleSeriesRenderer.setShowLabels(true);
multipleSeriesRenderer.setZoomButtonsVisible(false);
multipleSeriesRenderer.setZoomEnabled(false);
multipleSeriesRenderer.setZoomEnabled(false, false);
multipleSeriesRenderer.setAxisTitleTextSize(16);
// Pixels: top/left/bottom/right
multipleSeriesRenderer.setMargins(new int[] { 20, 40, 15, 5 });
multipleSeriesRenderer.setChartTitleTextSize(20);
// The next two lines prevent the Y axis zero from being suppressed!
multipleSeriesRenderer.setYAxisMin(0.0);
// * 1.05); // Allow border at top, for the points to draw in the case of 24-hour mod!
multipleSeriesRenderer.setYAxisMax(this.corePlotMaxValue);
// http://stackoverflow.com/questions/13216619/android-chart-with-dates-on-x-axis?rq=1
// multipleSeriesRenderer.setXRoundedLabels(true);
//multipleSeriesRenderer.setYTitle(mYAxisTitle);
//multipleSeriesRenderer.setSelectableBuffer(20);
// Create the series renderer - we have just one of these.
XYSeriesRenderer seriesRenderer = new XYSeriesRenderer();
seriesRenderer.setColor(lineColor);
// if (mDateRange == DATERANGE_1w1m3m1y.DATERANGE_1w1m3m1y_ONE_DAY) {
// // 24-hour mode - just plot hourly averages!
// seriesRenderer.setPointStyle(PointStyle.CIRCLE);
// seriesRenderer.setFillPoints(true);
// seriesRenderer.setPointStrokeWidth(10);
//
// } else
{
// Tell the line to fill below!
FillOutsideLine fillOutsideLine = new FillOutsideLine(XYSeriesRenderer.FillOutsideLine.Type.BELOW);
fillOutsideLine.setColor(areaEndColor);
seriesRenderer.addFillOutsideLine(fillOutsideLine);
// TODO - might be possible to use a gradient at some point?
//seriesRenderer.setGradientEnabled(true);
//seriesRenderer.setGradientStart(0, areaTopColor);
//seriesRenderer.setGradientStop(0, areaEndColor);
// Show points, filled!
seriesRenderer.setPointStyle(PointStyle.CIRCLE);
//seriesRenderer.setFillPoints(true);
seriesRenderer.setPointStrokeWidth(8);
}
// Add the series renderer to the multiple series renderer...
multipleSeriesRenderer.addSeriesRenderer(seriesRenderer);
// Create a series, and it it to the dataset...
mTimeSeries = new TimeSeries("");
// Create a dataset, and add the series to it...
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(mTimeSeries);
// Finally: create the chart graphical view!
if (mDateRange == DATERANGE_1w1m3m1y.DATERANGE_1w1m3m1y_ONE_DAY) {
// 24-hour format - just show time!
mGraphicalView = ChartFactory.getTimeChartView(context, dataset, multipleSeriesRenderer, SKDateFormat.sGetGraphTimeFormat());
// int lLabels = multipleSeriesRenderer.getXLabels();
// multipleSeriesRenderer.setXLabels(0);
// int i;
// for (i = 0; i < 5; i++) {
// multipleSeriesRenderer.addXTextLabel(i, "Wow!");
// }
//
multipleSeriesRenderer.setXLabels(0);
} else {
// 1 week or more - show date!
mGraphicalView = ChartFactory.getTimeChartView(context, dataset, multipleSeriesRenderer, SKDateFormat.sGetGraphDateFormat(context));
}
// Now that we have the chart, we'll be able to add-in some data...
// and add to the ViewGroup... straight after this call!
}Example 7
| Project: slkr-master File: CourseSummaryActivity.java View source code |
public void addBarChart(View view) {
pie.getBackground().setColorFilter(0xFF37474f, PorterDuff.Mode.MULTIPLY);
bar.getBackground().setColorFilter(0xFFff3d00, PorterDuff.Mode.MULTIPLY);
line.getBackground().setColorFilter(0xFF37474f, PorterDuff.Mode.MULTIPLY);
List<String> names = new ArrayList<String>();
// Creating an XYSeries for Income
XYSeries earnedSeries = new XYSeries("Earned");
XYSeries totalSeries = new XYSeries("Total");
// Adding data to Income and Expense Series
float maxWeight = 0;
for (int i = 0; i < mAssignments.size(); i++) {
earnedSeries.add(i, (mAssignments.get(i).getGrade() * mAssignments.get(i).getWeight() * .01));
totalSeries.add(i, mAssignments.get(i).getWeight());
if (mAssignments.get(i).getWeight() > maxWeight) {
maxWeight = mAssignments.get(i).getWeight();
}
}
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(earnedSeries);
dataset.addSeries(totalSeries);
// Creating XYSeriesRenderer to customize incomeSeries
XYSeriesRenderer earnedRenderer = new XYSeriesRenderer();
earnedRenderer.setColor(Color.rgb(228, 26, 28));
earnedRenderer.setFillPoints(true);
earnedRenderer.setLineWidth(2);
earnedRenderer.setDisplayChartValues(true);
// Creating a XYMultipleSeriesRenderer to customize the whole chart
XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();
multiRenderer.setXLabels(0);
for (int i = 0; i < mAssignments.size(); i++) {
multiRenderer.addXTextLabel(i, mAssignments.get(i).getName());
}
// Creating XYSeriesRenderer to customize expenseSeries
XYSeriesRenderer totalRenderer = new XYSeriesRenderer();
totalRenderer.setColor(Color.rgb(55, 126, 184));
totalRenderer.setFillPoints(true);
totalRenderer.setLineWidth(2);
totalRenderer.setDisplayChartValues(true);
// Adding incomeRenderer and expenseRenderer to multipleRenderer
// Note: The order of adding dataseries to dataset and renderers to multipleRenderer
// should be same
multiRenderer.addSeriesRenderer(earnedRenderer);
multiRenderer.addSeriesRenderer(totalRenderer);
multiRenderer.setBarSpacing(.2);
multiRenderer.setMarginsColor(Color.WHITE);
multiRenderer.setYAxisMin(0);
multiRenderer.setYAxisMax(maxWeight);
multiRenderer.setXAxisMin(-1);
multiRenderer.setLabelsTextSize(20);
// Creating an intent to plot bar chart using dataset and multipleRenderer
LinearLayout layout = (LinearLayout) findViewById(R.id.chart_layout);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
if (mChartView != null) {
layout.removeView(mChartView);
}
mChartView = ChartFactory.getBarChartView(this, dataset, multiRenderer, BarChart.Type.DEFAULT);
mChartView.setLayoutParams(params);
layout.addView(mChartView);
}Example 8
| Project: Android-Projects-master File: MainActivity.java View source code |
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
XYMultipleSeriesDataset dataset = createData();
XYMultipleSeriesRenderer render = renderGraph();
Intent intent = ChartFactory.getLineChartIntent(this, dataset, render);
startActivity(intent);
}Example 9
| Project: androidperformance-master File: CopyOfChartView.java View source code |
private void constructAreaChart() {
renderer = new XYMultipleSeriesRenderer();
timeseries = new TimeSeries("");
timeseries.add(new Date().getDate(), 0);
dataset = new XYMultipleSeriesDataset();
dataset.addSeries(timeseries);
XYSeriesRenderer seriesrenderer = new XYSeriesRenderer();
renderer.addSeriesRenderer(seriesrenderer);
setColors();
seriesrenderer.setPointStyle(PointStyle.CIRCLE);
seriesrenderer.setFillPoints(true);
seriesrenderer.setChartValuesSpacing(2);
seriesrenderer.setFillBelowLine(true);
seriesrenderer.setColor(getResources().getColor(R.color.light_blue));
seriesrenderer.setFillBelowLineColor(getResources().getColor(R.color.mid_blue));
seriesrenderer.setLineWidth(2);
//mChartView = ChartFactory.getCubeLineChartView(context, dataset, renderer, 0);
mChartView = ChartFactory.getTimeChartView(context, dataset, renderer, "MM/dd HH:00");
}Example 10
| Project: MoapGpsTracker-master File: GoogleMapsViewActivity.java View source code |
private void onChartMenu() {
SpeedOverTimeChart analysis = new SpeedOverTimeChart(this.model);
XYMultipleSeriesDataset dataset = analysis.createDataset();
XYMultipleSeriesRenderer renderer = analysis.createRenderer();
if (dataset != null && renderer != null) {
try {
Intent intent = ChartFactory.getTimeChartIntent(this, dataset, renderer, "HH:mm");
// Intent intent = ChartFactory.getLineChartIntent(this, dataset,renderer);
startActivity(intent);
} catch (Exception ex) {
Utilities.LogError("ERROR CHART", ex);
}
} else {
Utilities.LogDebug(String.format("Dataset - %s\nRenderer - ", dataset.toString(), renderer.toString()));
}
}Example 11
| Project: Broadband-Usage-master File: StackedLineChart.java View source code |
private XYMultipleSeriesDataset getAnytimeSeriesDataset(DailyVolumeUsage[] usage) { // Set daily accum objects and initialise long anytimeDailyAccum = 0; long uploadDailyAccum = 0; long quotaDailyAccum = 0; // Set String value categories for graph CategorySeries anytimeSeries = new CategorySeries(mContext.getString(R.string.chart_data_series_anytime)); CategorySeries uploadSeries = new CategorySeries(mContext.getString(R.string.chart_data_series_upload)); CategorySeries anytimeQuotaSeries = new CategorySeries(mContext.getString(R.string.chart_data_series_anytime_quota)); // Get average daily useage long quotaDaily = mAccountInfo.getAnyTimeQuotaDailyMb(); for (DailyVolumeUsage volumeUsage : usage) { // Get values from array Long anytime = (volumeUsage.anytime / MB); Long upload = (volumeUsage.uploads / MB); // Take off upload usage Long anytimeUsage = anytime - upload; Long uploadUsage = upload; // Calculate accumalitive values anytimeDailyAccum = anytimeDailyAccum + anytimeUsage; uploadDailyAccum = uploadDailyAccum + uploadUsage; quotaDailyAccum = quotaDailyAccum + quotaDaily; // Calculate stacked values long anytimeStacked = anytimeDailyAccum; long uploadStacked = anytimeDailyAccum + uploadDailyAccum; // Add current cursor values to data series anytimeSeries.add(anytimeStacked); uploadSeries.add(uploadStacked); anytimeQuotaSeries.add(quotaDailyAccum); // Set max data usage for rendering graph if (max <= uploadDailyAccum) { max = uploadDailyAccum * 1.05; } if (max <= quotaDailyAccum) { max = quotaDailyAccum * 1.05; } } XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); dataset.addSeries(uploadSeries.toXYSeries()); dataset.addSeries(anytimeSeries.toXYSeries()); dataset.addSeries(anytimeQuotaSeries.toXYSeries()); return dataset; }
Example 12
| Project: FactoryTest-master File: AbstractDataChart.java View source code |
public void addXYSeries(XYMultipleSeriesDataset dataset, String[] titles, List<double[]> xValues, List<double[]> yValues, int scale) {
int length = titles.length;
for (int i = 0; i < length; i++) {
XYSeries series = new XYSeries(titles[i], scale);
double[] xV = xValues.get(i);
double[] yV = yValues.get(i);
int seriesLength = xV.length;
for (int k = 0; k < seriesLength; k++) {
series.add(xV[k], yV[k]);
}
dataset.addSeries(series);
}
}Example 13
| Project: Heart-master File: TimePressureGraph.java View source code |
/**
* prepares an intent for starting the graph activity
*
* @return: the intent or null if nothing to display
*/
public Intent getIntent() {
XYMultipleSeriesDataset dataset = getDataset();
if (dataset == null) {
return null;
}
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setAxisTitleTextSize(16);
renderer.setChartTitleTextSize(20);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15);
renderer.setPointSize(5f);
renderer.setMargins(new int[] { 20, 50, 15, 20 });
XYSeriesRenderer seriesOne = new XYSeriesRenderer();
seriesOne.setColor(Color.MAGENTA);
seriesOne.setPointStyle(PointStyle.CIRCLE);
renderer.addSeriesRenderer(seriesOne);
XYSeriesRenderer seriesTwo = new XYSeriesRenderer();
seriesTwo.setColor(Color.GREEN);
seriesTwo.setPointStyle(PointStyle.TRIANGLE);
renderer.addSeriesRenderer(seriesTwo);
renderer.setChartTitle(ctxt.getString(R.string.graph_title));
renderer.setXTitle("");
renderer.setYTitle("mmHg");
renderer.setShowGridX(true);
renderer.setYLabelsAlign(Paint.Align.RIGHT);
renderer.setYAxisMax(getYDataMax(dataset) + 10);
renderer.setYAxisMin(getYDataMin(dataset) - 10);
return ChartFactory.getTimeChartIntent(ctxt, getDataset(), renderer, "MM/dd/yyyy", ctxt.getString(R.string.app_name));
}Example 14
| Project: invoicexpress-android-master File: TreasuryChart.java View source code |
public View getView(Context context, Map<String, BarChartModel> treasuryChartData) {
// if there is no data chart then the application has to generate it
if (BarChartModel.hasNoChart(treasuryChartData)) {
setGeneratedDataTreasuryChart(treasuryChartData);
}
String[] months = treasuryChartData.get(SETTLED_GRAPH_ID).getMonths();
double[] valuesSettled = treasuryChartData.get(SETTLED_GRAPH_ID).getValues();
CategorySeries seriesSettled = new CategorySeries(context.getResources().getString(R.string.dashboard_legend_settled));
for (int i = 0; i < valuesSettled.length; i++) {
seriesSettled.add(valuesSettled[i]);
}
double[] valuesOnTime = treasuryChartData.get(ONTIME_GRAPH_ID).getValues();
CategorySeries serieOnTime = new CategorySeries(context.getResources().getString(R.string.dashboard_legend_onTime));
for (int i = 0; i < valuesOnTime.length; i++) {
serieOnTime.add(valuesOnTime[i]);
}
double[] valuesOverdue = treasuryChartData.get(OVERDUE_GRAPH_ID).getValues();
CategorySeries seriesOverdue = new CategorySeries(context.getResources().getString(R.string.dashboard_legend_overdue));
for (int i = 0; i < valuesOverdue.length; i++) {
seriesOverdue.add(valuesOverdue[i]);
}
XYMultipleSeriesDataset dataSet = new XYMultipleSeriesDataset();
dataSet.addSeries(0, seriesSettled.toXYSeries());
dataSet.addSeries(1, serieOnTime.toXYSeries());
dataSet.addSeries(2, seriesOverdue.toXYSeries());
XYSeriesRenderer rendererReceived = new XYSeriesRenderer();
rendererReceived.setColor(context.getResources().getColor(R.color.dashboard_green_color));
XYSeriesRenderer rendererWithIn = new XYSeriesRenderer();
rendererWithIn.setColor(context.getResources().getColor(R.color.dashboard_white_color));
XYSeriesRenderer rendererLiquided = new XYSeriesRenderer();
rendererLiquided.setColor(context.getResources().getColor(R.color.dashboard_red_color));
int width = InvoiceXpress.getInstance().getScreenWidth((Activity) context);
int height = InvoiceXpress.getInstance().getScreenHeight((Activity) context);
BarChartInvoiceXpressRenderer multipleRenderer = new BarChartInvoiceXpressRenderer(context, width, height, valuesSettled, valuesOnTime, valuesOverdue);
multipleRenderer.addSeriesRenderer(rendererReceived);
multipleRenderer.addSeriesRenderer(rendererWithIn);
multipleRenderer.addSeriesRenderer(rendererLiquided);
multipleRenderer.setXAxisMax(months.length);
for (int i = 0; i < months.length; i++) {
multipleRenderer.addXTextLabel(i + 1, months[i]);
}
XYChart chart = new BarChartInvoiceXpress(context, dataSet, multipleRenderer, Type.DEFAULT);
return new GraphicalView(context, chart);
}Example 15
| Project: openrocket-master File: ChartFactory.java View source code |
/**
* Creates a combined XY chart view.
*
* @param context the context
* @param dataset the multiple series dataset (cannot be null)
* @param renderer the multiple series renderer (cannot be null)
* @param types the chart types (cannot be null)
* @return a combined XY chart graphical view
* @throws IllegalArgumentException if dataset is null or renderer is null or
* if a dataset number of items is different than the number of
* series renderers or number of chart types
*/
public static final GraphicalView getCombinedXYChartView(Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, String[] types) {
if (dataset == null || renderer == null || types == null || dataset.getSeriesCount() != types.length) {
throw new IllegalArgumentException("Dataset, renderer and types should be not null and the datasets series count should be equal to the types length");
}
checkParameters(dataset, renderer);
CombinedXYChart chart = new CombinedXYChart(dataset, renderer, types);
return new GraphicalView(context, chart);
}Example 16
| Project: rtty_modem-master File: LineGraph.java View source code |
public View getView(Context context) {
long minTime = System.currentTimeMillis() + 60 * 60 * 1000;
long maxTime = 0;
if (listpayloads.size() < 1)
return null;
if (Math.min(2, listfields.size()) == 0)
return null;
int differentFields = 0;
int tempLoc = -1;
for (int i = 0; i < listfields.size(); i++) {
if (isTemperature(listfields.get(i))) {
if (tempLoc < 0) {
tempLoc = i;
differentFields++;
}
} else
differentFields++;
}
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
XYMultipleSeriesRenderer mrend = new XYMultipleSeriesRenderer(Math.min(2, differentFields));
int cnt = 0;
for (int i = 0; i < listpayloads.size(); i++) {
String call = listpayloads.get(i);
int colour = _data.get(call).colour;
for (int f = 0; f < listfields.size(); f++) {
String field = listfields.get(f);
double m = 1;
double c = 0;
if (_data.containsKey(call)) {
int findex = 0;
if (_data.get(call).telemetryConfig != null) {
findex = _data.get(call).telemetryConfig.getIndex(field);
if (findex >= 0) {
m = _data.get(call).telemetryConfig.getFieldScale(findex);
c = _data.get(call).telemetryConfig.getFieldOffset(findex);
}
}
if (findex >= 0) {
TreeMap<Long, Telemetry_string> sen = _data.get(call).data;
if (sen.size() > 1) {
int axis = 0;
if (!isTemperature(listfields.get(f))) {
if (tempLoc == 0)
axis = 1;
else
axis = f;
} else
axis = tempLoc;
XYSeries series = new XYSeries(_data.get(call).callsign + " - " + field, axis);
for (TreeMap.Entry<Long, Telemetry_string> entry : sen.entrySet()) {
if (field == "altitude") {
if (entry.getValue().coords.alt_valid)
series.add(entry.getKey(), (int) entry.getValue().coords.altitude);
} else {
if (entry.getValue().getExtraFieldExists(findex))
series.add(entry.getKey(), m * entry.getValue().getExtraFields(findex) + c);
}
}
if (series.getMinX() < minTime)
minTime = (long) series.getMinX();
if (series.getMaxX() > maxTime)
maxTime = (long) series.getMaxX();
dataset.addSeries(series);
//else
// dataset.addSeries(f,series);
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setColor(colour);
renderer.setLineWidth(4);
//stroke style
mrend.addSeriesRenderer(renderer);
cnt++;
}
}
}
float lasthsv[] = new float[3];
Color.colorToHSV(colour, lasthsv);
lasthsv[0] = (lasthsv[0] + (26)) % 360;
colour = Color.HSVToColor(lasthsv);
}
}
if (cnt == 0)
return null;
//mrend.addXTextLabel(System.currentTimeMillis(), "custom label");
int steps = 13;
long inc = (maxTime - minTime) / steps;
for (int i = 0; i < steps; i++) {
Date dt = new Date(minTime + i * inc);
SimpleDateFormat dtf = new SimpleDateFormat("HH:mm");
mrend.addXTextLabel(minTime + i * inc, dtf.format(dt));
}
//mrend.setChartTitle("Altitude Plot");
mrend.setYTitle("Altitude (m)", 0);
if (Math.min(2, differentFields) > 1) {
//mrend.addYTextLabel(10, "New Test", 1);
//mrend.setYTitle("Hours", 1);
mrend.setYAxisAlign(Align.RIGHT, 1);
}
mrend.setShowGrid(true);
for (int i = 0; i < Math.min(2, differentFields); i++) {
mrend.setXAxisMax(maxTime, i);
mrend.setXAxisMin(minTime, i);
}
mrend.setYLabelsAngle(270);
mrend.setXLabels(0);
return ChartFactory.getLineChartView(context, dataset, mrend);
}Example 17
| Project: andlytics-master File: AbstractChart.java View source code |
/** * Builds an XY multiple dataset using the provided values. * * @param titles the series titles * @param xValues the values for the X axis * @param yValues the values for the Y axis * @return the XY multiple dataset */ protected XYMultipleSeriesDataset buildDataset(String[] titles, List<double[]> xValues, List<double[]> yValues) { XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); int length = titles.length; for (int i = 0; i < length; i++) { XYSeries series = new XYSeries(titles[i]); double[] xV = xValues.get(i); double[] yV = yValues.get(i); int seriesLength = xV.length; for (int k = 0; k < seriesLength; k++) { series.add(xV[k], yV[k]); } dataset.addSeries(series); } return dataset; }
Example 18
| Project: AndrOBD-master File: ChartActivity.java View source code |
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
// keep main display on?
if (MainActivity.prefs.getBoolean("keep_screen_on", false)) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
// prevent activity from falling asleep
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, getString(R.string.app_name));
wakeLock.acquire();
// set up action bar
ActionBar actionBar = getActionBar();
if (actionBar != null) {
actionBar.setDisplayShowTitleEnabled(true);
}
setTitle(R.string.chart);
/* get PIDs to be shown */
int positions[] = getIntent().getIntArrayExtra(POSITIONS);
// set up overall chart properties
sensorData = new XYMultipleSeriesDataset();
renderer = new XYMultipleSeriesRenderer(positions.length);
chartView = ChartFactory.getTimeChartView(this, sensorData, renderer, "H:mm:ss");
// set up global renderer
renderer.setXTitle(getString(R.string.time));
renderer.setXLabels(5);
renderer.setYLabels(5);
renderer.setGridColor(Color.DKGRAY);
renderer.setShowGrid(true);
renderer.setFitLegend(true);
renderer.setClickEnabled(false);
// set up chart data
setUpChartData(positions);
// make chart visible
setContentView(chartView);
// limit selected PIDs to selection
MainActivity.setFixedPids(pidNumbers);
// if auto hiding selected ...
if (MainActivity.prefs.getBoolean(MainActivity.PREF_AUTOHIDE, false)) {
// get autohide timeout [s]
int timeout = Integer.valueOf(MainActivity.prefs.getString(MainActivity.PREF_AUTOHIDE_DELAY, "15"));
// auto hide toolbar
toolBarHider = new AutoHider(this, mHandler, MainActivity.MESSAGE_TOOLBAR_VISIBLE, timeout * 1000);
toolBarHider.start(1000);
// wake up on touch
chartView.setOnTouchListener(toolBarHider);
}
}Example 19
| Project: android-mileage-master File: ChartsView.java View source code |
private void showChart(XYSeries series) {
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(series);
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
XYSeriesRenderer seriesRenderer = new XYSeriesRenderer();
seriesRenderer.setColor(0xFFFF9C24);
renderer.addSeriesRenderer(seriesRenderer);
renderer.setShowLegend(false);
renderer.setAxesColor(0x66666666);
PreferencesProvider prefs = PreferencesProvider.getInstance(this);
String format = prefs.getString(PreferencesProvider.DATE, "MM/dd/yy");
startActivity(ChartFactory.getTimeChartIntent(ChartsView.this, dataset, renderer, format));
}Example 20
| Project: Area-master File: AbstractDemoChart.java View source code |
public void addXYSeries(XYMultipleSeriesDataset dataset, String[] titles, List<double[]> xValues, List<double[]> yValues, int scale) {
int length = titles.length;
for (int i = 0; i < length; i++) {
XYSeries series = new XYSeries(titles[i], scale);
double[] xV = xValues.get(i);
double[] yV = yValues.get(i);
int seriesLength = xV.length;
for (int k = 0; k < seriesLength; k++) {
series.add(xV[k], yV[k]);
}
dataset.addSeries(series);
}
}Example 21
| Project: babble-master File: AbstractChart.java View source code |
public void addXYSeries(XYMultipleSeriesDataset dataset, String[] titles, List<double[]> xValues, List<double[]> yValues, int scale) {
int length = titles.length;
for (int i = 0; i < length; i++) {
XYSeries series = new XYSeries(titles[i], scale);
double[] xV = xValues.get(i);
double[] yV = yValues.get(i);
int seriesLength = xV.length;
for (int k = 0; k < seriesLength; k++) {
series.add(xV[k], yV[k]);
}
dataset.addSeries(series);
}
}Example 22
| Project: CareAndroid-master File: LabShareActivity.java View source code |
protected XYMultipleSeriesDataset buildBarDataset(String[] titles, List<double[]> values) { XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); int length = titles.length; for (int i = 0; i < length; i++) { CategorySeries series = new CategorySeries(titles[i]); double[] v = values.get(i); int seriesLength = v.length; for (int k = 0; k < seriesLength; k++) { series.add(v[k]); } dataset.addSeries(series.toXYSeries()); } return dataset; }
Example 23
| Project: DeviceConnect-Android-master File: HitoeProfileECGFragment.java View source code |
/**
* Initialize ECG chart.
*/
private void init() {
this.mECGList = new ArrayList<>();
this.mECGList.add(new XYSeries(TITLES[0]));
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addAllSeries(this.mECGList);
this.mXYMultipleSeriesRenderer = buildRenderer();
mLineChart = new LineChart(dataset, mXYMultipleSeriesRenderer);
mGraphicalView = new GraphicalView(getActivity(), mLineChart);
}Example 24
| Project: Dual-Battery-Widget-master File: ChartFactory.java View source code |
/**
* Creates a combined XY chart view.
*
* @param context the context
* @param dataset the multiple series dataset (cannot be null)
* @param renderer the multiple series renderer (cannot be null)
* @param types the chart types (cannot be null)
* @return a combined XY chart graphical view
* @throws IllegalArgumentException if dataset is null or renderer is null or
* if a dataset number of items is different than the number of
* series renderers or number of chart types
*/
public static final GraphicalView getCombinedXYChartView(Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, String[] types) {
if (dataset == null || renderer == null || types == null || dataset.getSeriesCount() != types.length) {
throw new IllegalArgumentException("Dataset, renderer and types should be not null and the datasets series count should be equal to the types length");
}
checkParameters(dataset, renderer);
CombinedXYChart chart = new CombinedXYChart(dataset, renderer, types);
return new GraphicalView(context, chart);
}Example 25
| Project: HealthCareApp-master File: MainActivity.java View source code |
private void openChart() {
Runnable runnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
URL url = new URL("http://58.27.132.54:443/health/getGraphJSON?");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
int resCode = urlConnection.getResponseCode();
if (resCode == 200) {
InputStream is = new BufferedInputStream(urlConnection.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
String result = "";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
JSONArray jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject c = jArray.getJSONObject(i);
// Storing each json item in variable
Integer ExerciseName = c.getInt("CaloriesDiff");
calBurntArrayList.add(ExerciseName);
// Toast.makeText(getApplicationContext(),
// ExerciseName+" ", Toast.LENGTH_LONG).show();
}
} else
resCode = -1;
} catch (Exception e) {
e.printStackTrace();
}
}
};
runnable.run();
double sumCal = 0;
ArrayList<Integer> calRight = new ArrayList<Integer>();
for (int i = calBurntArrayList.size() - 1; i >= 0; i--) {
calRight.add(calBurntArrayList.get(i).intValue());
}
for (int j = 0; j < calRight.size(); j++) {
daily[j] = calRight.get(j).intValue();
sumCal = daily[j] + sumCal;
}
sumCal = sumCal / 15;
int[] x = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 };
/*
* int[] daily = { 1714, 1331, 1902, 1424, 1815, 1857, 1508, 1804, 1818,
* 1550, 1464, 1983, 1497, 1479, 1869, 1978 };
*/
Runnable runnable2 = new Runnable() {
@Override
public void run() {
try {
URL url = new URL("http://58.27.132.54:443/health/getUserJSON?");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
int resCode = urlConnection.getResponseCode();
if (resCode == 200) {
InputStream is = new BufferedInputStream(urlConnection.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
String result = "";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
JSONArray jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject c = jArray.getJSONObject(i);
// Storing each json item in variable
h = c.getDouble("Height");
W = c.getDouble("Weight");
GW = c.getDouble("WeightGoal");
duration = c.getInt("GoalWeightDuration");
age = c.getInt("Age");
}
} else
resCode = -1;
} catch (Exception e) {
e.printStackTrace();
}
}
};
runnable2.run();
h = h * 100;
double calories = ((10 * (W)) + (6.5 * h) - (5 * age) * 1.55);
double sum = GW - W;
double cal = Math.abs(sum) / (duration / 7) * 2;
calories = calories - cal;
int[] goal = new int[15];
int[] goal1 = new int[15];
for (int i = 0; i < 15; i++) {
goal[i] = (int) calories;
goal1[i] = (int) sumCal;
}
/*= { 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
1672, 1672, 1672, 1672, 1672, 1672, 1672 };
int[] goal1 = { 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687,
1687, 1687, 1687, 1687, 1687, 1687, 1687 };
*/
/// Creating an XYSeries for Income
// CategorySeries incomeSeries = new CategorySeries("Income");
XYSeries dailySeries = new XYSeries("Daily");
// Creating an XYSeries for Income
XYSeries goalSeries = new XYSeries("Goal");
// Adding data to Income and Expense Series
XYSeries avgSeries = new XYSeries("Avg");
// Adding data to Income and Expense Series
for (int i = 0; i < x.length; i++) {
dailySeries.add(i, daily[i]);
goalSeries.add(i, goal[i]);
avgSeries.add(i, goal1[i]);
}
// Creating a dataset to hold each series
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
// Adding Income Series to the dataset
dataset.addSeries(dailySeries);
// Adding Expense Series to dataset
dataset.addSeries(goalSeries);
dataset.addSeries(avgSeries);
// Creating XYSeriesRenderer to customize incomeSeries
XYSeriesRenderer incomeRenderer = new XYSeriesRenderer();
incomeRenderer.setColor(Color.rgb(130, 130, 230));
incomeRenderer.setFillPoints(true);
incomeRenderer.setLineWidth(2);
incomeRenderer.setDisplayChartValues(true);
// Creating XYSeriesRenderer to customize expenseSeries
XYSeriesRenderer expenseRenderer = new XYSeriesRenderer();
expenseRenderer.setColor(Color.rgb(220, 80, 80));
expenseRenderer.setFillPoints(true);
expenseRenderer.setLineWidth(2);
expenseRenderer.setDisplayChartValues(true);
// Creating XYSeriesRenderer to customize expenseSeries
XYSeriesRenderer goalRenderer = new XYSeriesRenderer();
goalRenderer.setColor(Color.rgb(200, 100, 150));
goalRenderer.setFillPoints(true);
goalRenderer.setLineWidth(2);
goalRenderer.setDisplayChartValues(true);
// Creating a XYMultipleSeriesRenderer to customize the whole chart
XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();
multiRenderer.setXLabels(0);
multiRenderer.setChartTitle("Daily Calories vs Goal Calories");
multiRenderer.setXTitle("June 2013");
multiRenderer.setYTitle("Calories");
multiRenderer.setZoomButtonsVisible(true);
for (int i = 0; i < x.length; i++) {
multiRenderer.addXTextLabel(i, mMonth[i]);
}
// Adding incomeRenderer and expenseRenderer to multipleRenderer
// Note: The order of adding dataseries to dataset and renderers to
// multipleRenderer
// should be same
multiRenderer.addSeriesRenderer(incomeRenderer);
multiRenderer.addSeriesRenderer(expenseRenderer);
multiRenderer.addSeriesRenderer(goalRenderer);
// Creating an intent to plot bar chart using dataset and
// multipleRenderer
Intent intent = ChartFactory.getLineChartIntent(getBaseContext(), dataset, multiRenderer);
// Start Activity
startActivity(intent);
}Example 26
| Project: HeartRateAdjuster-master File: StatisticsActivity.java View source code |
private void displayLineChart(double[] myTimes, double[] myRates) {
// Creating an XYSeries for Heart Rate
XYSeries hrSeries = new XYSeries("Heart Rate");
// Adding data to hrSeries
for (int i = 0; i < myTimes.length; i++) {
hrSeries.add(myTimes[i], myRates[i]);
}
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(hrSeries);
XYSeriesRenderer hrRenderer = new XYSeriesRenderer();
hrRenderer.setColor(Color.GREEN);
hrRenderer.setPointStyle(PointStyle.DIAMOND);
hrRenderer.setFillPoints(true);
hrRenderer.setLineWidth(2);
hrRenderer.setDisplayChartValues(true);
XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();
multiRenderer.setXLabels(0);
multiRenderer.setChartTitle("Heart Rate vs Time");
multiRenderer.setXTitle("Timestamps (s)");
multiRenderer.setYTitle("Heart Rate");
multiRenderer.setApplyBackgroundColor(true);
multiRenderer.setBackgroundColor(Color.BLACK);
multiRenderer.setZoomButtonsVisible(true);
for (int i = 0; i < myTimes.length; i++) {
String label;
label = String.valueOf(myTimes[i]);
multiRenderer.addXTextLabel(i + 1, label);
}
multiRenderer.addSeriesRenderer(hrRenderer);
Intent intent = ChartFactory.getLineChartIntent(getBaseContext(), dataset, multiRenderer);
startActivity(intent);
}Example 27
| Project: MovementTrackr-master File: AbstractDemoChart.java View source code |
/** * Builds an XY multiple dataset using the provided values. * * @param titles the series titles * @param xValues the values for the X axis * @param yValues the values for the Y axis * @return the XY multiple dataset */ protected XYMultipleSeriesDataset buildDataset(String[] titles, List<double[]> xValues, List<double[]> yValues) { XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); int length = titles.length; for (int i = 0; i < length; i++) { XYSeries series = new XYSeries(titles[i]); double[] xV = xValues.get(i); double[] yV = yValues.get(i); int seriesLength = xV.length; for (int k = 0; k < seriesLength; k++) { series.add(xV[k], yV[k]); } dataset.addSeries(series); } return dataset; }
Example 28
| Project: MtGoxWidget-master File: GraphPopupActivity.java View source code |
private void setupChart(List<MtGoxTickerData> dataList) {
dataset = new XYMultipleSeriesDataset();
renderer = initChart();
XYSeries highSeries = addSeries(getString(R.string.high), Color.parseColor("#00CC00"), false);
XYSeries lowSeries = addSeries(getString(R.string.low), Color.parseColor("#CC0000"), false);
XYSeries sellSeries = addSeries(getString(R.string.sell), Color.parseColor("#AAFFAA"), false);
XYSeries buySeries = addSeries(getString(R.string.buy), Color.parseColor("#FFAAAA"), false);
XYSeries lastSeries = addSeries(getString(R.string.last), Color.WHITE, true);
for (MtGoxTickerData data : dataList) {
//Log.d("Graphdata", data.toString());
addDataToSeriesIfNotNull(highSeries, data.getTimestamp().getTime(), data.getHigh());
addDataToSeriesIfNotNull(lowSeries, data.getTimestamp().getTime(), data.getLow());
addDataToSeriesIfNotNull(sellSeries, data.getTimestamp().getTime(), data.getSell());
addDataToSeriesIfNotNull(buySeries, data.getTimestamp().getTime(), data.getBuy());
addDataToSeriesIfNotNull(lastSeries, data.getTimestamp().getTime(), data.getLast());
}
}Example 29
| Project: routelandia-android-master File: ListStat.java View source code |
private void openChart() {
XYSeries durationSeries = new XYSeries("Duration of travel");
int timeLength = trafficStatList.size();
for (int i = 0; i < timeLength; i++) {
durationSeries.add((i + 1), trafficStatList.get(i).getTravelTime());
}
XYSeries speedSeries = new XYSeries("Speed");
for (int i = 0; i < timeLength; i++) {
speedSeries.add((i + 1), trafficStatList.get(i).getSpeed());
}
//Collects all series and adds them under one object here called data
XYMultipleSeriesDataset data = new XYMultipleSeriesDataset();
data.addSeries(durationSeries);
data.addSeries(speedSeries);
//Gives the Bar it's property
XYSeriesRenderer durRenderer = new XYSeriesRenderer();
durRenderer.setColor(Color.GREEN);
durRenderer.setDisplayChartValues(true);
durRenderer.setChartValuesTextAlign(Paint.Align.CENTER);
durRenderer.setChartValuesTextSize(15);
XYSeriesRenderer speedRenderer = new XYSeriesRenderer();
speedRenderer.setColor(Color.CYAN);
speedRenderer.setDisplayChartValues(true);
speedRenderer.setChartValuesTextAlign(Paint.Align.CENTER);
speedRenderer.setChartValuesTextSize(15);
XYMultipleSeriesRenderer mRender = new XYMultipleSeriesRenderer();
mRender.setBarSpacing(1);
mRender.addSeriesRenderer(durRenderer);
mRender.addSeriesRenderer(speedRenderer);
mRender.setChartTitle("Travel Time and Speed");
mRender.setXTitle("Departure Time");
mRender.setYTitle("Duration and Speed");
mRender.setZoomButtonsVisible(true);
mRender.setLabelsTextSize(20);
mRender.setLegendTextSize(15);
mRender.setChartTitleTextSize(28);
mRender.setAxisTitleTextSize(25);
mRender.setXAxisMin(trafficStatList.get(1).getHour());
mRender.setXAxisMax(trafficStatList.size());
for (int i = 0; i < timeLength; i++) {
mRender.addTextLabel(i + 1, String.valueOf((int) trafficStatList.get(i).getHour() + ":" + (int) trafficStatList.get(i).getMinutes()));
}
mRender.setXLabelsAlign(CENTER);
mRender.setXLabels(0);
// Getting a reference to LinearLayout of the MainActivity Layout
LinearLayout chartContainer = (LinearLayout) findViewById(R.id.chart_container);
// Creating a Time Chart
mChart = (GraphicalView) ChartFactory.getBarChartView(getBaseContext(), data, mRender, BarChart.Type.DEFAULT);
//return intent;
mRender.setClickEnabled(true);
mRender.setSelectableBuffer(10);
mChart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SeriesSelection seriesSelection = mChart.getCurrentSeriesAndPoint();
if (seriesSelection != null) {
int seriesIndex = seriesSelection.getSeriesIndex();
String selectedSeries = "Duration";
if (seriesIndex == 0)
selectedSeries = "Duration";
else
selectedSeries = "Speed";
}
}
});
chartContainer.addView(mChart);
}Example 30
| Project: Swinedroid-master File: AbstractChart.java View source code |
/** * Builds an XY multiple dataset using the provided values. * @param titles the series titles * @param xValues the values for the X axis * @param yValues the values for the Y axis * @return the XY multiple dataset */ protected XYMultipleSeriesDataset buildDataset(String[] titles, List<double[]> xValues, List<double[]> yValues) { XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); int length = titles.length; for (int i = 0; i < length; i++) { XYSeries series = new XYSeries(titles[i]); double[] xV = xValues.get(i); double[] yV = yValues.get(i); int seriesLength = xV.length; for (int k = 0; k < seriesLength; k++) { series.add(xV[k], yV[k]); } dataset.addSeries(series); } return dataset; }
Example 31
| Project: UFit-master File: Progress.java View source code |
public Intent initGraph() {
ArrayList<Double> storedWeights = new ArrayList<Double>();
ArrayList<Long> storedDates = new ArrayList<Long>();
BufferedReader read = null;
String newTitle = profile.getUsername() + "_progress.txt";
//long offset = 1000*60*60*4;
long offset = 0;
try {
read = new BufferedReader(new InputStreamReader(openFileInput(newTitle)));
while (read.ready()) {
storedWeights.add(Double.parseDouble(read.readLine()));
storedDates.add(Long.parseLong(read.readLine()));
}
read.close();
read = null;
} catch (Exception e) {
Toast.makeText(this, "Progress Reading Failed", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
Date[] x = new Date[storedDates.size()];
Double[] y = new Double[storedWeights.size()];
for (int i = 0; i < storedDates.size(); i++) {
x[i] = new Date(storedDates.get(i) - offset);
y[i] = storedWeights.get(i);
}
double minWeight = y[0];
double maxWeight = y[0];
for (int i = 0; i < storedDates.size(); i++) {
if (y[i] < minWeight) {
minWeight = y[i];
}
if (y[i] > maxWeight) {
maxWeight = y[i];
}
}
if (minWeight > profile.getTargetWeight()) {
minWeight = profile.getTargetWeight();
}
if (maxWeight < profile.getTargetWeight()) {
maxWeight = profile.getTargetWeight();
}
TimeSeries series = new TimeSeries("Weight (lbs)");
for (int i = 0; i < x.length; i++) {
series.add(x[i], y[i]);
}
TimeSeries target = new TimeSeries("Target Weight");
target.add(x[0], profile.getTargetWeight());
target.add(x[(x.length - 1)], profile.getTargetWeight());
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(series);
dataset.addSeries(target);
XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setColor(Color.YELLOW);
mRenderer.addSeriesRenderer(renderer);
XYSeriesRenderer renderer2 = new XYSeriesRenderer();
renderer2.setColor(Color.RED);
mRenderer.addSeriesRenderer(renderer2);
mRenderer.setXTitle("Date");
mRenderer.setYTitle("Weight");
if ((minWeight - 30) < 0) {
minWeight = 30;
}
mRenderer.setYAxisMin(minWeight - 30);
mRenderer.setYAxisMax(maxWeight + 30);
Intent lineIntent = ChartFactory.getTimeChartIntent(this, dataset, mRenderer, "Weight Loss Progress");
return lineIntent;
}Example 32
| Project: ElectricSleep-master File: SleepChart.java View source code |
@Override
protected AbstractChart buildChart() {
Log.d(TAG, "Attempting to build chart.");
if (mChart != null) {
Log.w(TAG, "Attempt to build chart when chart already exists.");
return mChart;
}
mDataset = new XYMultipleSeriesDataset();
mRenderer = new XYMultipleSeriesRenderer();
// Set initial framing for renderer.
mRenderer.setYAxisMin(0);
// Referencing SettingsActivity.MAX_ALARM_SENSITIVITY causes errors in ADT.
if (isInEditMode()) {
mRenderer.setYAxisMax(1.0f);
} else {
mRenderer.setYAxisMax(SettingsActivity.MAX_ALARM_SENSITIVITY);
}
mRenderer.setXAxisMin(System.currentTimeMillis());
mRenderer.setXAxisMax(System.currentTimeMillis());
mRenderer.setPanEnabled(false, false);
mRenderer.setZoomEnabled(false, false);
TimeChart timeChart = new TimeChart(mDataset, mRenderer);
timeChart.setDateFormat("h:mm:ss");
mChart = timeChart;
return mChart;
}Example 33
| Project: gsn-master File: AbstractChart.java View source code |
public void addXYSeries(XYMultipleSeriesDataset dataset, String[] titles, List<double[]> xValues, List<double[]> yValues, int scale) {
int length = titles.length;
for (int i = 0; i < length; i++) {
XYSeries series = new XYSeries(titles[i], scale);
double[] xV = xValues.get(i);
double[] yV = yValues.get(i);
int seriesLength = xV.length;
for (int k = 0; k < seriesLength; k++) {
series.add(xV[k], yV[k]);
}
dataset.addSeries(series);
}
}Example 34
| Project: MiBandDecompiled-master File: ChartFactory.java View source code |
private static void a(XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer) {
if (xymultipleseriesdataset == null || xymultipleseriesrenderer == null || xymultipleseriesdataset.getSeriesCount() != xymultipleseriesrenderer.getSeriesRendererCount()) {
throw new IllegalArgumentException("Dataset and renderer should be not null and should have the same number of series");
} else {
return;
}
}Example 35
| Project: Open-Battery-Saver-master File: BatteryInfoFragment.java View source code |
private void drawChart() {
mRenderer = new XYMultipleSeriesRenderer();
mDataset = new XYMultipleSeriesDataset();
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setLineWidth(5);
renderer.setColor(Color.parseColor("#0099cc"));
renderer.setDisplayBoundingPoints(true);
renderer.setPointStyle(PointStyle.CIRCLE);
renderer.setPointStrokeWidth(10);
//FillOutsideLine fillOutsideLine = new FillOutsideLine(Type.BOUNDS_ALL);
//fillOutsideLine.setColor(Color.parseColor("#0099cc"));
//renderer.addFillOutsideLine(fillOutsideLine);
//mRenderer.setChartTitle("Battery Level (%)");
mRenderer.setChartTitleTextSize(30f);
mRenderer.setLabelsTextSize(20f);
mRenderer.addSeriesRenderer(renderer);
mRenderer.setMarginsColor(Color.argb(0x00, 0xff, 0x00, 0x00));
mRenderer.setPanEnabled(true, false);
mRenderer.setZoomEnabled(false, false);
mRenderer.setYAxisMax(DeviceUtils.getBatteryScale(getActivity()));
mRenderer.setYAxisMin(0);
//mRenderer.setShowGrid(true);
mRenderer.setGridColor(Color.GRAY);
mRenderer.setClickEnabled(false);
TimeSeries series = new TimeSeries("");
/* long value = new Date().getTime() - 3 * TimeChart.DAY;
for (int i = 0; i < 5; i++) {
series.add(new Date(value + i * TimeChart.DAY / 4), i);
}*/
List<BatteryTrace> traces = BatteryTrace.getClosestTraceData(getActivity().getContentResolver(), LIMIT_DATE_SHOW);
boolean chartVisible = traces.size() >= MINIMUM_VALUE_TO_SHOW_CHART;
if (chartVisible) {
Calendar panMinimumX = Calendar.getInstance();
panMinimumX.set(Calendar.HOUR_OF_DAY, traces.get(0).hour);
panMinimumX.set(Calendar.MINUTE, traces.get(0).minutes);
Calendar panMaximumX = Calendar.getInstance();
panMaximumX.set(Calendar.HOUR_OF_DAY, traces.get(traces.size() - 1).hour);
panMaximumX.set(Calendar.MINUTE, traces.get(traces.size() - 1).minutes);
//mRenderer.setPanLimits(new double[] {panMinimumX.getTimeInMillis(), panMaximumX.getTimeInMillis() * 2, 0, 0});
for (BatteryTrace b : traces) {
//System.out.println(b.toString());
Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, b.hour);
c.set(Calendar.MINUTE, b.minutes);
series.add(c.getTime(), b.level);
}
mDataset.addSeries(series);
mChartView = ChartFactory.getTimeChartView(getActivity(), mDataset, mRenderer, "hh:mm aa");
}
}Example 36
| Project: Open-Vehicle-Android-master File: ChartFactory.java View source code |
private static void checkParameters(XYMultipleSeriesDataset xymultipleseriesdataset, XYMultipleSeriesRenderer xymultipleseriesrenderer) {
if (xymultipleseriesdataset == null || xymultipleseriesrenderer == null || xymultipleseriesdataset.getSeriesCount() != xymultipleseriesrenderer.getSeriesRendererCount())
throw new IllegalArgumentException("Dataset and renderer should be not null and should have the same number of series");
else
return;
}Example 37
| Project: PowerTutor-master File: PowerViewer.java View source code |
public void refreshView() {
if (counterService == null) {
TextView loadingText = new TextView(this);
loadingText.setText("Waiting for profiler service...");
loadingText.setGravity(Gravity.CENTER);
setContentView(loadingText);
return;
}
chartLayout = new LinearLayout(this);
chartLayout.setOrientation(LinearLayout.VERTICAL);
if (uid == SystemInfo.AID_ALL) {
/* If we are reporting global power usage then just set noUidMask to 0 so
* that all components get displayed.
*/
noUidMask = 0;
}
components = 0;
for (int i = 0; i < componentNames.length; i++) {
if ((noUidMask & 1 << i) == 0) {
components++;
}
}
boolean showTotal = prefs.getBoolean("showTotalPower", false);
collectors = new ValueCollector[(showTotal ? 1 : 0) + components];
int pos = 0;
for (int i = showTotal ? -1 : 0; i < componentNames.length; i++) {
if (i != -1 && (noUidMask & 1 << i) != 0) {
continue;
}
String name = i == -1 ? "Total" : componentNames[i];
double mxPower = (i == -1 ? 2100.0 : componentsMaxPower[i]) * 1.05;
XYSeries series = new XYSeries(name);
XYMultipleSeriesDataset mseries = new XYMultipleSeriesDataset();
mseries.addSeries(series);
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
XYSeriesRenderer srenderer = new XYSeriesRenderer();
renderer.setYAxisMin(0.0);
renderer.setYAxisMax(mxPower);
renderer.setYTitle(name + "(mW)");
int clr = PowerPie.COLORS[(PowerPie.COLORS.length + i) % PowerPie.COLORS.length];
srenderer.setColor(clr);
srenderer.setFillBelowLine(true);
srenderer.setFillBelowLineColor(((clr >> 1) & 0x7F7F7F) | (clr & 0xFF000000));
renderer.addSeriesRenderer(srenderer);
View chartView = new GraphicalView(this, new CubicLineChart(mseries, renderer, 0.5f));
chartView.setMinimumHeight(100);
chartLayout.addView(chartView);
collectors[pos] = new ValueCollector(series, renderer, chartView, i);
if (handler != null) {
handler.post(collectors[pos]);
}
pos++;
}
/* We're giving 100 pixels per graph of vertical space for the chart view.
If we don't specify a minimum height the chart view ends up having a
height of 0 so this is important. */
chartLayout.setMinimumHeight(100 * components);
ScrollView scrollView = new ScrollView(this) {
public boolean onInterceptTouchEvent(android.view.MotionEvent ev) {
return true;
}
};
scrollView.addView(chartLayout);
scrollView.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
setContentView(scrollView);
}Example 38
| Project: S-Tools-master File: ChartFactory.java View source code |
/**
* Creates a combined XY chart view.
*
* @param context the context
* @param dataset the multiple series dataset (cannot be null)
* @param renderer the multiple series renderer (cannot be null)
* @param types the chart types (cannot be null)
* @return a combined XY chart graphical view
* @throws IllegalArgumentException if dataset is null or renderer is null or
* if a dataset number of items is different than the number of
* series renderers or number of chart types
*/
public static final GraphicalView getCombinedXYChartView(Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, String[] types) {
if (dataset == null || renderer == null || types == null || dataset.getSeriesCount() != types.length) {
throw new IllegalArgumentException("Dataset, renderer and types should be not null and the datasets series count should be equal to the types length");
}
checkParameters(dataset, renderer);
CombinedXYChart chart = new CombinedXYChart(dataset, renderer, types);
return new GraphicalView(context, chart);
}Example 39
| Project: Surviving-with-android-master File: ChartFragment.java View source code |
private View createTempGraph() {
// We start creating the XYSeries to plot the temperature
XYSeries series = new XYSeries("London Temperature hourly");
// We start filling the series
int hour = 0;
for (HourForecast hf : nextHourForecast) {
series.add(hour++, hf.weather.temperature.getTemp());
}
// Now we create the renderer
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setLineWidth(2);
renderer.setColor(Color.RED);
// Include low and max value
renderer.setDisplayBoundingPoints(true);
// we add point markers
renderer.setPointStyle(PointStyle.CIRCLE);
renderer.setPointStrokeWidth(3);
// Now we add our series
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(series);
// Finaly we create the multiple series renderer to control the graph
XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
mRenderer.addSeriesRenderer(renderer);
// We want to avoid black border
// transparent margins
mRenderer.setMarginsColor(Color.argb(0x00, 0xff, 0x00, 0x00));
// Disable Pan on two axis
mRenderer.setPanEnabled(false, false);
mRenderer.setYAxisMax(35);
mRenderer.setYAxisMin(0);
// we show the grid
mRenderer.setShowGrid(true);
GraphicalView chartView = ChartFactory.getLineChartView(getActivity(), dataset, mRenderer);
// Enable chart click
mRenderer.setClickEnabled(true);
chartView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
applyAnim(v, createPressGraph());
}
});
return chartView;
}Example 40
| Project: t-board-master File: FragmentsStatistics.java View source code |
private void openChart2() {
long[] followers = new long[arralistEntityModels.size()];
long[] followings = new long[arralistEntityModels.size()];
long[] mutualFollowers = new long[arralistEntityModels.size()];
long[] nonFollowers = new long[arralistEntityModels.size()];
System.out.println("arralistEntityModels " + arralistEntityModels);
for (int i = 0; i < arralistEntityModels.size(); i++) {
followers[i] = arralistEntityModels.get(i).getFollowers();
followings[i] = arralistEntityModels.get(i).getFollowings();
mutualFollowers[i] = arralistEntityModels.get(i).getMutuals();
nonFollowers[i] = arralistEntityModels.get(i).getNonfollwers();
if (arralistEntityModels.get(i).getFollowers() > maxLimit) {
maxLimit = arralistEntityModels.get(i).getFollowers();
}
if (arralistEntityModels.get(i).getFollowings() > maxLimit) {
maxLimit = arralistEntityModels.get(i).getFollowings();
}
if (arralistEntityModels.get(i).getMutuals() > maxLimit) {
maxLimit = arralistEntityModels.get(i).getMutuals();
}
if (arralistEntityModels.get(i).getNonfollwers() > maxLimit) {
maxLimit = arralistEntityModels.get(i).getNonfollwers();
}
}
maxLimit = maxLimit + 10;
System.out.println("maxLimit = " + maxLimit);
XYSeries xySeriesfollower = new XYSeries("Followers");
XYSeries xySeriesfollowings = new XYSeries("Followings");
XYSeries xySeriesmutualFollowers = new XYSeries("MutualFollowers");
XYSeries xySeriesnonFollowers = new XYSeries("NonFollowers");
// Adding data to Income and Expense Series
for (int i = 0; i < arralistEntityModels.size(); i++) {
xySeriesfollower.add(i, followers[i]);
xySeriesfollowings.add(i, followings[i]);
xySeriesmutualFollowers.add(i, mutualFollowers[i]);
xySeriesnonFollowers.add(i, nonFollowers[i]);
}
// Creating a dataset to hold each series
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(xySeriesfollower);
dataset.addSeries(xySeriesfollowings);
dataset.addSeries(xySeriesmutualFollowers);
dataset.addSeries(xySeriesnonFollowers);
// Creating XYSeriesRenderer to customize incomeSeries
XYSeriesRenderer rendererfollowers = new XYSeriesRenderer();
// color of the graph set to
rendererfollowers.setColor(Color.CYAN);
// cyan
rendererfollowers.setFillPoints(true);
rendererfollowers.setLineWidth(2f);
rendererfollowers.setDisplayChartValues(true);
// setting chart value distance
rendererfollowers.setDisplayChartValuesDistance(10);
// setting line graph point style to circle
rendererfollowers.setPointStyle(PointStyle.POINT);
// setting stroke of the line chart to solid
rendererfollowers.setStroke(BasicStroke.SOLID);
// Creating XYSeriesRenderer to customize expenseSeries
XYSeriesRenderer rendererFollowings = new XYSeriesRenderer();
rendererFollowings.setColor(Color.GREEN);
rendererFollowings.setFillPoints(true);
rendererFollowings.setLineWidth(2f);
rendererFollowings.setDisplayChartValues(true);
// setting line graph point style to circle
rendererFollowings.setPointStyle(PointStyle.POINT);
// setting stroke of the line chart to solid
rendererFollowings.setStroke(BasicStroke.SOLID);
XYSeriesRenderer rendererMutualFollowers = new XYSeriesRenderer();
// color of the graph
rendererMutualFollowers.setColor(Color.YELLOW);
// set to cyan
rendererMutualFollowers.setFillPoints(true);
rendererMutualFollowers.setLineWidth(2f);
rendererMutualFollowers.setDisplayChartValues(true);
// setting chart value distance
rendererMutualFollowers.setDisplayChartValuesDistance(10);
// setting line graph point style to circle
rendererMutualFollowers.setPointStyle(PointStyle.POINT);
// setting stroke of the line chart to solid
rendererMutualFollowers.setStroke(BasicStroke.SOLID);
// Creating XYSeriesRenderer to customize expenseSeries
XYSeriesRenderer rendererNonFollowers = new XYSeriesRenderer();
rendererNonFollowers.setColor(Color.RED);
rendererNonFollowers.setFillPoints(true);
rendererNonFollowers.setLineWidth(2f);
rendererNonFollowers.setDisplayChartValues(true);
// setting line graph point style to circle
rendererNonFollowers.setPointStyle(PointStyle.POINT);
// setting stroke of the line chart to solid
rendererNonFollowers.setStroke(BasicStroke.SOLID);
// Creating a XYMultipleSeriesRenderer to customize the whole chart
XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();
multiRenderer.setXLabels(0);
multiRenderer.setChartTitle("Followers Analysis");
multiRenderer.setXTitle("Year 2015");
multiRenderer.setYTitle("Followers List");
/***
* Customizing graphs
*/
// setting text size of the title
multiRenderer.setChartTitleTextSize(28);
// setting text size of the axis title
multiRenderer.setAxisTitleTextSize(20);
// setting text size of the graph lable
multiRenderer.setLabelsTextSize(12);
// setting zoom buttons visiblity
// multiRenderer.setZoomButtonsVisible(true);
// setting pan enablity which uses graph to move on both axis
// multiRenderer.setPanEnabled(false, false);
// setting click false on graph
multiRenderer.setClickEnabled(false);
// setting zoom to false on both axis
// multiRenderer.setZoomEnabled(true, true);
// setting lines to display on y axis
multiRenderer.setShowGridY(true);
// setting lines to display on x axis
multiRenderer.setShowGridX(true);
// setting legend to fit the screen size
multiRenderer.setFitLegend(true);
// setting displaying line on grid
multiRenderer.setShowGrid(true);
// setting zoom to false
multiRenderer.setZoomEnabled(false);
// setting external zoom functions to false
multiRenderer.setExternalZoomEnabled(false);
// setting displaying lines on graph to be formatted(like using
// graphics)
multiRenderer.setAntialiasing(false);
// setting to in scroll to false
multiRenderer.setInScroll(false);
// setting to set legend height of the graph
multiRenderer.setLegendHeight(30);
// setting x axis label align
multiRenderer.setXLabelsAlign(Align.CENTER);
// setting y axis label to align
multiRenderer.setYLabelsAlign(Align.LEFT);
// setting text style
multiRenderer.setTextTypeface("sans_serif", Typeface.NORMAL);
// setting no of values to display in y axis
multiRenderer.setYLabels(10);
// setting y axis max value, Since i'm using static values inside the
// graph so i'm setting y max value to 4000.
// if you use dynamic values then get the max y value and set here
multiRenderer.setYAxisMax(maxLimit);
// setting used to move the graph on xaxiz to .5 to the right
// multiRenderer.setXAxisMin(0.5);
// setting used to move the graph on xaxiz to .5 to the right
multiRenderer.setXAxisMax(arralistEntityModels.size());
// setting bar size or space between two bars
multiRenderer.setBarSpacing(0.5);
// Setting background color of the graph to transparent
multiRenderer.setBackgroundColor(Color.BLACK);
// Setting margin color of the graph to transparent
multiRenderer.setMarginsColor(getResources().getColor(android.R.color.transparent));
multiRenderer.setApplyBackgroundColor(true);
multiRenderer.setScale(2f);
// setting x axis point size
multiRenderer.setPointSize(4f);
// setting the margin size for the graph in the order top, left, bottom,
// right
multiRenderer.setMargins(new int[] { 30, 30, 30, 30 });
DateFormat dateFormat = new SimpleDateFormat("MM/dd");
for (int i = 0; i < arralistEntityModels.size(); i++) {
Date date = new Date(arralistEntityModels.get(i).getMillis());
// 2014/08/06
System.out.println(dateFormat.format(date));
if (i == 0) {
multiRenderer.addXTextLabel(i, "" + 0);
} else {
multiRenderer.addXTextLabel(i, dateFormat.format(date));
}
}
// Adding incomeRenderer and expenseRenderer to multipleRenderer
// Note: The order of adding dataseries to dataset and renderers to
// multipleRenderer
// should be same
multiRenderer.addSeriesRenderer(rendererfollowers);
multiRenderer.addSeriesRenderer(rendererFollowings);
multiRenderer.addSeriesRenderer(rendererMutualFollowers);
multiRenderer.addSeriesRenderer(rendererNonFollowers);
multiRenderer.setPanEnabled(false, false);
multiRenderer.setYAxisMin(0);
multiRenderer.setXAxisMin(0);
// this part is used to display graph on the xml
LinearLayout chartContainer = (LinearLayout) rootview.findViewById(R.id.chart);
// remove any views before u paint the chart
chartContainer.removeAllViews();
// drawing bar chart
System.out.println("dataset " + dataset.toString());
System.out.println("multiRenderer " + multiRenderer.toString());
mChart = ChartFactory.getLineChartView(FragmentsStatistics.this.getActivity(), dataset, multiRenderer);
mChart.setClickable(false);
// adding the view to the linearlayout
chartContainer.addView(mChart);
// Creating an intent to plot bar chart using dataset and
// multipleRenderer
}Example 41
| Project: TCC---DESENVOLVIMENTO---UNIVALI-master File: MonitorFrequencia.java View source code |
/**
* ³õʼ»¯ÅäÖÃ
*/
@SuppressWarnings("deprecation")
private void initConfig() {
//ÇúÏß
context = getApplicationContext();
//ÕâÀï»ñµÃmain½çÃæÉϵIJ¼¾Ö£¬ÏÂÃæ»á°Ñͼ±í»ÔÚÕâ¸ö²¼¾ÖÀïÃæ
LinearLayout layout = (LinearLayout) findViewById(R.id.id_linearLayout_graph);
//Õâ¸öÀàÓÃÀ´·ÅÖÃÇúÏßÉϵÄËùÓе㣬ÊÇÒ»¸öµãµÄ¼¯ºÏ£¬¸ù¾ÝÕâЩµã»³öÇúÏß
series = new XYSeries(title);
//´´½¨Ò»¸öÊý¾Ý¼¯µÄʵÀý£¬Õâ¸öÊý¾Ý¼¯½«±»ÓÃÀ´´´½¨Í¼±í
mDataset = new XYMultipleSeriesDataset();
//½«µã¼¯Ìí¼Óµ½Õâ¸öÊý¾Ý¼¯ÖÐ
mDataset.addSeries(series);
//ÒÔ϶¼ÊÇÇúÏßµÄÑùʽºÍÊôÐԵȵȵÄÉèÖã¬rendererÏ൱ÓÚÒ»¸öÓÃÀ´¸øÍ¼±í×öäÖȾµÄ¾ä±ú
int color = Color.GREEN;
PointStyle style = PointStyle.CIRCLE;
renderer = buildRenderer(color, style, true);
//ÉèÖúÃͼ±íµÄÑùʽ
setChartSettings(renderer, "X", "Y", 0, 300, 4, 16, Color.WHITE, Color.WHITE);
//Éú³Éͼ±í
chart = ChartFactory.getLineChartView(context, mDataset, renderer);
//½«Í¼±íÌí¼Óµ½²¼¾ÖÖÐÈ¥
layout.addView(chart, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
//ÕâÀïµÄHandlerʵÀý½«ÅäºÏÏÂÃæµÄTimerʵÀý£¬Íê³É¶¨Ê±¸üÐÂͼ±íµÄ¹¦ÄÜ
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
//Ë¢ÐÂͼ±í
updateChart();
super.handleMessage(msg);
}
};
task = new TimerTask() {
@Override
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
};
//ÇúÏß
timer.schedule(task, 1, 20);
//»ñÈ¡SurfaceView¿Ø¼þ
preview = (SurfaceView) findViewById(R.id.id_preview);
previewHolder = preview.getHolder();
previewHolder.addCallback(surfaceCallback);
previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mTV_Heart_Rate = (TextView) findViewById(R.id.id_tv_heart_rate);
mTV_Avg_Pixel_Values = (TextView) findViewById(R.id.id_tv_Avg_Pixel_Values);
mTV_pulse = (TextView) findViewById(R.id.id_tv_pulse);
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "DoNotDimScreen");
}Example 42
| Project: WeatherLib-master File: ChartFragment.java View source code |
private View createTempGraph() {
// We start creating the XYSeries to plot the temperature
XYSeries series = new XYSeries("London Temperature hourly");
// We start filling the series
int hour = 0;
for (HourForecast hf : nextHourForecast) {
series.add(hour++, hf.weather.temperature.getTemp());
}
// Now we create the renderer
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setLineWidth(2);
renderer.setColor(Color.RED);
// Include low and max value
renderer.setDisplayBoundingPoints(true);
// we add point markers
renderer.setPointStyle(PointStyle.CIRCLE);
renderer.setPointStrokeWidth(3);
// Now we add our series
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(series);
// Finaly we create the multiple series renderer to control the graph
XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
mRenderer.addSeriesRenderer(renderer);
// We want to avoid black border
// transparent margins
mRenderer.setMarginsColor(Color.argb(0x00, 0xff, 0x00, 0x00));
// Disable Pan on two axis
mRenderer.setPanEnabled(false, false);
mRenderer.setYAxisMax(35);
mRenderer.setYAxisMin(0);
// we show the grid
mRenderer.setShowGrid(true);
GraphicalView chartView = ChartFactory.getLineChartView(getActivity(), dataset, mRenderer);
// Enable chart click
mRenderer.setClickEnabled(true);
chartView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
applyAnim(v, createPressGraph());
}
});
return chartView;
}Example 43
| Project: android-skwissh-master File: SensorGraphViewBuilder.java View source code |
private View createLineView() {
// Categories
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
String[] labels = this.sensor.getLabels().split(";");
int nb_values = 0;
try {
nb_values = this.sensor.getMeasures().get(0).getValue().split(";").length;
} catch (IndexOutOfBoundsException ioobe) {
return this.createTextView();
}
for (int i = 0; i < nb_values; i++) {
TimeSeries timeSerie = new TimeSeries(labels[i]);
for (int j = 0; j < this.sensor.getMeasures().size(); j++) {
Double value = new Double(this.sensor.getMeasures().get(j).getValue().split(";")[i]);
Date date = this.sensor.getMeasures().get(j).getTimestamp();
timeSerie.add(date, value);
}
dataset.addSeries(timeSerie);
}
// Renderer
XYMultipleSeriesRenderer renderer = this.getDefaultRenderer();
for (int color : Arrays.copyOfRange(this.colors, 0, nb_values)) {
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(color);
r.setFillBelowLine(true);
r.setFillBelowLine(false);
r.setFillPoints(true);
r.setLineWidth(2);
renderer.addSeriesRenderer(r);
}
renderer.setShowLegend(true);
renderer.setPanEnabled(false, false);
renderer.setZoomEnabled(false, false);
renderer.setGridColor(this.lightFontColor);
renderer.setMarginsColor(this.backgroundColor);
renderer.setXLabelsColor(this.fontColor);
renderer.setYLabelsColor(0, this.fontColor);
renderer.setYLabelsAlign(Align.RIGHT);
renderer.setYAxisMin(0);
renderer.setXLabels(0);
int count = dataset.getSeriesAt(0).getItemCount();
String dateFormat = "HH:mm\nMMM dd";
if (this.period.equals("hour")) {
dateFormat = "HH:mm";
}
for (int i = 0; i < count; i = i + (count / 5)) {
Double d = dataset.getSeriesAt(0).getX(i);
Date date = this.sensor.getMeasures().get(i).getTimestamp();
String s = new SimpleDateFormat(dateFormat).format(date);
renderer.addXTextLabel(d, s);
}
this.setYAxisValues(dataset, renderer);
return ChartFactory.getTimeChartView(this.context, dataset, renderer, dateFormat);
}Example 44
| Project: HeartRate-master File: MainActivity.java View source code |
/**
* ³õʼ»¯ÅäÖÃ
*/
@SuppressWarnings("deprecation")
private void initConfig() {
//ÇúÏß
context = getApplicationContext();
//ÕâÀï»ñµÃmain½çÃæÉϵIJ¼¾Ö£¬ÏÂÃæ»á°Ñͼ±í»ÔÚÕâ¸ö²¼¾ÖÀïÃæ
LinearLayout layout = (LinearLayout) findViewById(R.id.id_linearLayout_graph);
//Õâ¸öÀàÓÃÀ´·ÅÖÃÇúÏßÉϵÄËùÓе㣬ÊÇÒ»¸öµãµÄ¼¯ºÏ£¬¸ù¾ÝÕâЩµã»³öÇúÏß
series = new XYSeries(title);
//´´½¨Ò»¸öÊý¾Ý¼¯µÄʵÀý£¬Õâ¸öÊý¾Ý¼¯½«±»ÓÃÀ´´´½¨Í¼±í
mDataset = new XYMultipleSeriesDataset();
//½«µã¼¯Ìí¼Óµ½Õâ¸öÊý¾Ý¼¯ÖÐ
mDataset.addSeries(series);
//ÒÔ϶¼ÊÇÇúÏßµÄÑùʽºÍÊôÐԵȵȵÄÉèÖã¬rendererÏ൱ÓÚÒ»¸öÓÃÀ´¸øÍ¼±í×öäÖȾµÄ¾ä±ú
int color = Color.GREEN;
PointStyle style = PointStyle.CIRCLE;
renderer = buildRenderer(color, style, true);
//ÉèÖúÃͼ±íµÄÑùʽ
setChartSettings(renderer, "X", "Y", 0, 300, 4, 16, Color.WHITE, Color.WHITE);
//Éú³Éͼ±í
chart = ChartFactory.getLineChartView(context, mDataset, renderer);
//½«Í¼±íÌí¼Óµ½²¼¾ÖÖÐÈ¥
layout.addView(chart, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
//ÕâÀïµÄHandlerʵÀý½«ÅäºÏÏÂÃæµÄTimerʵÀý£¬Íê³É¶¨Ê±¸üÐÂͼ±íµÄ¹¦ÄÜ
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
//Ë¢ÐÂͼ±í
updateChart();
super.handleMessage(msg);
}
};
task = new TimerTask() {
@Override
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
};
//ÇúÏß
timer.schedule(task, 1, 20);
//»ñÈ¡SurfaceView¿Ø¼þ
preview = (SurfaceView) findViewById(R.id.id_preview);
previewHolder = preview.getHolder();
previewHolder.addCallback(surfaceCallback);
previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mTV_Heart_Rate = (TextView) findViewById(R.id.id_tv_heart_rate);
mTV_Avg_Pixel_Values = (TextView) findViewById(R.id.id_tv_Avg_Pixel_Values);
mTV_pulse = (TextView) findViewById(R.id.id_tv_pulse);
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "DoNotDimScreen");
}Example 45
| Project: BioZen-Android-master File: Graphs1Activity.java View source code |
/**
* Sets up all parameters for display of both the chart on the screen
* AND a color coded display of the parameters and their values
*/
private void generateChart() {
// Set up chart
XYMultipleSeriesDataset deviceDataset = new XYMultipleSeriesDataset();
XYMultipleSeriesRenderer deviceRenderer = new XYMultipleSeriesRenderer();
LinearLayout layout = (LinearLayout) findViewById(R.id.deviceChart);
if (mDeviceChartView != null) {
layout.removeView(mDeviceChartView);
}
if (true) {
mDeviceChartView = ChartFactory.getLineChartView(this, deviceDataset, deviceRenderer);
mDeviceChartView.setBackgroundColor(Color.BLACK);
layout.addView(mDeviceChartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
}
deviceRenderer.setShowLabels(false);
deviceRenderer.setMargins(new int[] { 0, 5, 5, 0 });
deviceRenderer.setShowAxes(true);
deviceRenderer.setShowLegend(false);
deviceRenderer.setZoomEnabled(false, false);
deviceRenderer.setPanEnabled(false, false);
deviceRenderer.setYAxisMin(0);
deviceRenderer.setYAxisMax(100);
SpannableStringBuilder sMeasuresText = new SpannableStringBuilder("Displaying: ");
ArrayList<Long> visibleIds = getVisibleIds(KEY_NAME);
int keyCount = mBioParameters.size();
keyCount = mBioParameters.size();
int lineNum = 0;
for (int i = 0; i < mBioParameters.size(); ++i) {
GraphBioParameter item = mBioParameters.get(i);
item.visible = visibleIds.contains(item.id);
if (!item.visible) {
continue;
}
deviceDataset.addSeries(item.series);
item.color = getKeyColor(i, keyCount);
// Add name of the measure to the displayed text field
ForegroundColorSpan fcs = new ForegroundColorSpan(item.color);
int start = sMeasuresText.length();
sMeasuresText.append(mBioParameters.get(i).title1 + ", ");
int end = sMeasuresText.length();
sMeasuresText.setSpan(fcs, start, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
if (sMeasuresText.length() > 40 && lineNum == 0) {
lineNum++;
}
XYSeriesRenderer seriesRenderer = new XYSeriesRenderer();
seriesRenderer.setColor(item.color);
seriesRenderer.setPointStyle(PointStyle.CIRCLE);
deviceRenderer.addSeriesRenderer(seriesRenderer);
}
mMeasuresDisplayText.setText(sMeasuresText);
}Example 46
| Project: BSPAN---Bluetooth-Sensor-Processing-for-Android-master File: AndroidSpineExampleActivity.java View source code |
private void generateChart() {
// Set up chart
XYMultipleSeriesDataset deviceDataset = new XYMultipleSeriesDataset();
XYMultipleSeriesRenderer deviceRenderer = new XYMultipleSeriesRenderer();
LinearLayout layout = (LinearLayout) findViewById(R.id.deviceChart);
if (mDeviceChartView != null) {
layout.removeView(mDeviceChartView);
}
if (true) {
mDeviceChartView = ChartFactory.getLineChartView(this, deviceDataset, deviceRenderer);
mDeviceChartView.setBackgroundColor(Color.BLACK);
layout.addView(mDeviceChartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
}
deviceRenderer.setShowLabels(false);
deviceRenderer.setMargins(new int[] { 0, 5, 5, 0 });
deviceRenderer.setShowAxes(true);
deviceRenderer.setShowLegend(false);
deviceRenderer.setZoomEnabled(false, false);
deviceRenderer.setPanEnabled(false, false);
deviceRenderer.setYAxisMin(0);
// deviceRenderer.setYAxisMax(1000);
// This is set rather arbitrarily based on observed resistance values in the log
deviceRenderer.setYAxisMax(8000000);
deviceDataset.addSeries(mSeries);
XYSeriesRenderer seriesRenderer = new XYSeriesRenderer();
seriesRenderer.setColor(Color.WHITE);
seriesRenderer.setPointStyle(PointStyle.CIRCLE);
deviceRenderer.addSeriesRenderer(seriesRenderer);
}Example 47
| Project: myconsumption-android-master File: ChartViewFragment.java View source code |
// initialises the graph
private void init() {
Log.d(TAG, "init");
layoutPointData.setVisibility(View.GONE);
chartLayout.removeAllViews();
chart = null;
data = new HashMap<>();
List<SensorData> sensors = SingleInstance.getUserController().getUser().getSensors();
if (sensors.size() == 0) {
textViewNoData.setVisibility(View.VISIBLE);
textViewNoData.setText(R.string.chart_text_no_sensor);
refreshingView.setVisibility(View.GONE);
} else {
textViewNoData.setText(R.string.chart_text_no_data);
}
for (SensorData sensor : sensors) {
data.put(sensor.getSensorId(), new ChartSerieRendererContainer(sensor));
}
textViewNoData.setVisibility(View.VISIBLE);
originalChartDataset = new XYMultipleSeriesDataset();
currentChartDataset = new XYMultipleSeriesDataset();
chartRenderer = new XYMultipleSeriesRenderer();
chartRenderer.setApplyBackgroundColor(true);
chartRenderer.setBackgroundColor(Color.WHITE);
chartRenderer.setAxesColor(Color.DKGRAY);
chartRenderer.setMarginsColor(Color.WHITE);
chartRenderer.setGridColor(Color.LTGRAY);
chartRenderer.setXLabelsColor(Color.DKGRAY);
chartRenderer.setYLabelsColor(0, Color.DKGRAY);
//chartRenderer.setZoomEnabled(true);
//chartRenderer.setPanEnabled(true);
chartRenderer.setZoomEnabled(true, false);
chartRenderer.setPanEnabled(true, false);
chartRenderer.setClickEnabled(true);
chartRenderer.setShowGrid(true);
chartRenderer.setXLabelFormat(new DecimalFormat() {
@Override
public StringBuffer format(double value, StringBuffer buffer, FieldPosition position) {
Date dateFormat = new Date(((long) value) * 1000);
buffer.append(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(dateFormat));
return buffer;
}
});
chartRenderer.setShowLegend(false);
minimalX = Integer.MAX_VALUE;
maximalX = 0;
maximalY = 0;
}Example 48
| Project: wva_sample-master File: ChartFragment.java View source code |
/**
* Create the components that go into the chart.
*
* <p>This method is protected, rather than private, due to a bug between JaCoCo and
* the Android build tools which causes the instrumented bytecode to be invalid when this
* method is private:
* http://stackoverflow.com/questions/17603192/dalvik-transformation-using-wrong-invoke-opcode
* </p>
*/
protected void buildGraphPieces() {
if (mRenderer != null || mDataset != null || mRpmRenderer != null || mSpeedRenderer != null) {
// Don't want to leak any memory or whatnot.
return;
}
mRenderer = new XYMultipleSeriesRenderer(2);
mDataset = new XYMultipleSeriesDataset();
mSpeedRenderer = new XYSeriesRenderer();
mRpmRenderer = new XYSeriesRenderer();
// Initialize renderer settings
mRenderer.setShowGrid(true);
mRenderer.setFitLegend(true);
// Number of grid lines in either direction by default
mRenderer.setXLabels(0);
mRenderer.setYLabels(10);
mRenderer.setXLabelsAlign(Align.RIGHT);
mRenderer.setYLabelsAlign(Align.RIGHT);
mRenderer.setPointSize(5f);
// AChartEngine output defaults to a black background.
// This doesn't fit with the general WVA color scheme.
mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.WHITE);
mRenderer.setMarginsColor(Color.WHITE);
mRenderer.setAxesColor(Color.DKGRAY);
mRenderer.setLabelsColor(Color.BLACK);
mRenderer.setXLabelsColor(Color.DKGRAY);
mRenderer.setYLabelsColor(0, Color.DKGRAY);
mRenderer.setYLabelsColor(1, Color.DKGRAY);
mRenderer.setGridColor(Color.LTGRAY);
mRenderer.setPanEnabled(false, false);
mRenderer.setZoomEnabled(false, false);
mRenderer.setXAxisMin(startTime);
mRenderer.setXAxisMax(endTime);
mRenderer.setXAxisMin(startTime, 1);
mRenderer.setXAxisMax(endTime, 1);
mRenderer.setYAxisMin(0, 0);
mRenderer.setYAxisMax(100, 0);
mSpeedRenderer.setColor(Color.RED);
mSpeedRenderer.setPointStyle(PointStyle.CIRCLE);
mSpeedRenderer.setFillPoints(true);
mRpmRenderer.setColor(Color.BLUE);
mRpmRenderer.setPointStyle(PointStyle.SQUARE);
mRpmRenderer.setFillPoints(true);
XYSeries speedSeries = new XYSeries("Vehicle Speed");
XYSeries rpmSeries = new XYSeries("Engine RPM", 1);
mDataset.addSeries(0, speedSeries);
mDataset.addSeries(1, rpmSeries);
mRenderer.addSeriesRenderer(0, mSpeedRenderer);
mRenderer.addSeriesRenderer(1, mRpmRenderer);
mRenderer.setYAxisMin(0, 1);
mRenderer.setYAxisMax(10000, 1);
mRenderer.setYTitle("VehicleSpeed");
mRenderer.setYTitle("EngineSpeed", 1);
mRenderer.setYAxisAlign(Align.RIGHT, 1);
mRenderer.setYLabelsAlign(Align.RIGHT, 1);
// Add X-axis labels with time.
Log.d(TAG, "Time range: " + startTime + " to " + endTime);
SimpleDateFormat fmt = new SimpleDateFormat("HH:mm:ss", Locale.US);
for (double t = startTime; t <= endTime; t += 60 * 1000) {
String time = fmt.format(new Date((long) t));
Log.d(TAG, "Adding label " + t + ", " + time);
mRenderer.addXTextLabel(t, time);
}
}Example 49
| Project: domodroid-master File: Graphical_Info_with_achartengine.java View source code |
private void onCreate() {
this.state_key = feature.getState_key();
this.dev_id = feature.getDevId();
this.parameters = feature.getParameters();
this.id = feature.getId();
this.isopen = false;
try {
int graphics_height_size = params.getInt("graphics_height_size", 262);
this.Float_graph_size = Float.valueOf(graphics_height_size);
} catch (Exception e) {
String graph_size = params.getString("graph_size", "262.5");
this.Float_graph_size = Float.valueOf(graph_size);
}
format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
mytag = "Graphical_Info_with_achartengine (" + dev_id + ")";
try {
stateS = getResources().getString(translate.do_translate(getContext(), Tracer, state_key));
} catch (Exception e) {
stateS = state_key;
}
myself = this;
setOnClickListener(this);
DisplayMetrics metrics = getResources().getDisplayMetrics();
//Label Text size according to the screen size
float size12 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 12, metrics);
size10 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 10, metrics);
size5 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 5, metrics);
float size2 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 2, metrics);
//Design the graph
//Creating a XYMultipleSeriesRenderer to customize the whole chart
multiRenderer = new XYMultipleSeriesRenderer();
//Creating XYSeriesRenderer to customize incomeSeries
incomeRenderer = new XYSeriesRenderer();
emptyRenderer = new XYSeriesRenderer();
//Creating a dataset to hold each series
dataset = new XYMultipleSeriesDataset();
//Creating an XYSeries for Income
nameSeries = new TimeSeries(name);
EmptySeries = new TimeSeries(getResources().getString(translate.do_translate(getContext(), Tracer, "no_value")));
incomeRenderer.setColor(0xff0B909A);
emptyRenderer.setColor(0xffff0000);
incomeRenderer.setPointStyle(PointStyle.CIRCLE);
//emptyRenderer.setPointStyle(PointStyle.CIRCLE);
incomeRenderer.setFillPoints(true);
emptyRenderer.setFillPoints(true);
incomeRenderer.setLineWidth(4);
emptyRenderer.setLineWidth(4);
incomeRenderer.setDisplayChartValues(true);
emptyRenderer.setDisplayChartValues(false);
incomeRenderer.setChartValuesTextSize(size12);
//Change the type of line between point
//incomeRenderer.setStroke(BasicStroke.DASHED);
//Remove default X axis label
//multiRenderer.setXLabels(0);
//Set X title
multiRenderer.setXTitle(getResources().getString(translate.do_translate(getContext(), Tracer, "time")));
//Remove default Y axis label
multiRenderer.setYLabels(0);
//Set X label text color
multiRenderer.setXLabelsColor(Color.BLACK);
//Set Y label text color
multiRenderer.setYLabelsColor(0, Color.BLACK);
//Set X label text size
multiRenderer.setLabelsTextSize(size10);
//Set X label text angle
multiRenderer.setXLabelsAngle(-15);
//Set Y label text angle
multiRenderer.setYLabelsAngle(-10);
//Set X label text alignement
multiRenderer.setXLabelsAlign(Align.CENTER);
//Set to make TV_Value of y axis left aligned
multiRenderer.setYLabelsAlign(Align.LEFT);
//Disable zoom button
multiRenderer.setZoomButtonsVisible(false);
//get background transparent
multiRenderer.setMarginsColor(Color.argb(0x00, 0xff, 0x00, 0x00));
//Disable Zoom in Y axis
multiRenderer.setZoomEnabled(true, false);
//Disable Pan in Y axis
multiRenderer.setPanEnabled(true, false);
//Limits pan mouvement
//[panMinimumX, panMaximumX, panMinimumY, panMaximumY]
//double[] panLimits={-5,26,0,0};
//multiRenderer.setPanLimits(panLimits);
//Sets the selectable radius TV_Value around clickable points.
multiRenderer.setSelectableBuffer(10);
//Add grid
multiRenderer.setShowGrid(true);
//Set color for grid
multiRenderer.setGridColor(Color.BLACK, 0);
//To allow on click method (called when pan or zoom aplied)
multiRenderer.setClickEnabled(true);
Tracer.i(mytag, "New instance for name = " + name + " state_key = " + state_key);
//state key
state_key_view = new TextView(activity);
state_key_view.setText(stateS);
state_key_view.setTextColor(Color.parseColor("#333333"));
//TV_Value
TV_Value = new TextView(activity);
TV_Value.setTextSize(28);
TV_Value.setTextColor(Color.BLACK);
TV_Value.setGravity(Gravity.RIGHT);
Animation animation = new AlphaAnimation(0.0f, 1.0f);
animation.setDuration(1000);
TV_Timestamp = new RelativeTimeTextView(activity, null);
TV_Timestamp.setTextSize(10);
TV_Timestamp.setTextColor(Color.BLUE);
TV_Timestamp.setGravity(Gravity.RIGHT);
super.LL_featurePan.addView(TV_Value);
super.LL_featurePan.addView(TV_Timestamp);
super.LL_infoPan.addView(state_key_view);
test_unite = "";
try {
//Basilic add, number feature has a unit parameter
JSONObject jparam = new JSONObject(parameters.replaceAll(""", "\""));
test_unite = jparam.getString("unit");
} catch (JSONException jsonerror) {
Tracer.i(mytag, "No unit for this feature");
}
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 9999) {
//state_engine send us a signal to notify TV_Value changed
if (session == null)
return;
String new_val = session.getValue();
String Value_timestamp = session.getTimestamp();
Tracer.d(mytag, "Handler receives a new TV_Value <" + new_val + "> at " + Value_timestamp);
Long Value_timestamplong = null;
Value_timestamplong = Long.valueOf(Value_timestamp) * 1000;
display_sensor_info.display(Tracer, new_val, Value_timestamplong, mytag, parameters, TV_Value, TV_Timestamp, activity, LL_featurePan, typefaceweather, typefaceawesome, state_key, state_key_view, stateS, test_unite);
//Change icon if in %
if ((state_key.equalsIgnoreCase("humidity")) || (state_key.equalsIgnoreCase("percent")) || (test_unite.equals("%"))) {
if (Float.parseFloat(new_val) >= 60) {
//To have the icon colored if TV_Value beetwen 30 and 60
change_this_icon(2);
} else if (Float.parseFloat(new_val) >= 30) {
//To have the icon colored if TV_Value >30
change_this_icon(1);
} else {
//To have the icon colored if TV_Value <30
change_this_icon(0);
}
} else {
// #93
if (new_val.equals("off") || new_val.equals("false") || new_val.equals("0") || new_val.equals("0.0")) {
change_this_icon(0);
//set featuremap.state to 1 so it could select the correct icon in entity_map.get_ressources
} else {
change_this_icon(2);
}
}
} else if (msg.what == 9998) {
// state_engine send us a signal to notify it'll die !
Tracer.d(mytag, "state engine disappeared ===> Harakiri !");
session = null;
realtime = false;
removeView(LL_background);
myself.setVisibility(GONE);
if (container != null) {
container.removeView(myself);
container.recomputeViewAttributes(myself);
}
try {
finalize();
} catch (Throwable t) {
t.printStackTrace();
}
//kill the handler thread itself
}
}
};
//================================================================================
/*
* New mechanism to be notified by widgetupdate engine when our TV_Value is changed
*
*/
WidgetUpdate cache_engine = WidgetUpdate.getInstance();
if (cache_engine != null) {
if (api_version <= 0.6f) {
session = new Entity_client(dev_id, state_key, mytag, handler, session_type);
} else if (api_version >= 0.7f) {
session = new Entity_client(id, "", mytag, handler, session_type);
}
try {
if (Tracer.get_engine().subscribe(session)) {
//we're connected to engine
realtime = true;
//each time our TV_Value change, the engine will call handler
//Force to consider current TV_Value in session
handler.sendEmptyMessage(9999);
}
} catch (Exception e) {
e.printStackTrace();
}
}
//================================================================================
//updateTimer(); //Don't use anymore cyclic refresh....
}Example 50
| Project: elastic-droid-master File: MonitorInstanceView.java View source code |
/**
* Restore instance state when the activity is reconstructed after a destroy
*
* This method restores:
* <ul>
* <li>cloudWatchInput: The input data (such as period, measure name etc) for the display</li>
* </ul>
*/
@Override
public void onRestoreInstanceState(Bundle stateToRestore) {
//restore alertDialogDisplayed boolean
alertDialogDisplayed = stateToRestore.getBoolean("alertDialogDisplayed");
Log.v(TAG, "alertDialogDisplayed = " + alertDialogDisplayed);
alertDialogMessage = stateToRestore.getString("alertDialogMessage");
//was a progress dialog being displayed? Restore the answer to this question.
progressDialogDisplayed = stateToRestore.getBoolean("progressDialogDisplayed");
Log.v(TAG + ".onRestoreInstanceState", "progressDialogDisplayed:" + progressDialogDisplayed);
/*get the model data back, so that you can inform the model that the activity
* has come back up. */
Object retained = getLastNonConfigurationInstance();
if (retained instanceof MonitorInstanceModel) {
Log.v(TAG, "Restoring monitorinstancemodel on activity restore...");
monitorInstanceModel = (MonitorInstanceModel) retained;
monitorInstanceModel.setActivity(this);
} else if (retained instanceof CloudWatchMetricsModel) {
Log.v(TAG, "Restoring metrics model on activity restore...");
metricsModel = (CloudWatchMetricsModel) retained;
metricsModel.setActivity(this);
}
//restore the input data
cloudWatchInput = (CloudWatchInput) (stateToRestore.getSerializable("cloudWatchInput"));
//restore the measure data if any
measureNames = stateToRestore.getStringArrayList("measureNames");
//restore the chart data
multiRenderer = (XYMultipleSeriesRenderer) stateToRestore.getSerializable("multiRenderer");
dataset = (XYMultipleSeriesDataset) stateToRestore.getSerializable("dataset");
((TextView) findViewById(R.id.monitorInstanceTextView)).setText(stateToRestore.getString("titleText"));
}Example 51
| Project: PayDownCalc-master File: PayDownCalcMain.java View source code |
public XYMultipleSeriesDataset getBarDemoDataset() { XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); CategorySeries seriesPrincipal = new CategorySeries("Principal"); CategorySeries seriesInterest = new CategorySeries("Interest"); CategorySeries seriesSavings = new CategorySeries("Savings"); if (mtg == null) { Log.w("getBarDemoDataset", "mtg is null"); } if (mtg.runningtotalinterest == null) { Log.w("getBarDemoDataset", "runningtotalinterest is null"); } if (mtg.interestsaved == null) { Log.w("getBarDemoDataset", "interestsaved is null"); } if (mtg == null || mtg.runningtotalprincipal == null || mtg.runningtotalinterest == null || mtg.interestsaved == null) { seriesPrincipal.add(0); seriesPrincipal.add(0); seriesInterest.add(0); seriesInterest.add(0); seriesSavings.add(0); seriesSavings.add(0); } else { if (listItems.listWidgets.size() == 0) { seriesPrincipal.add(0); seriesInterest.add(0); seriesSavings.add(0); } else { seriesPrincipal.add(mtg.runningtotalprincipal.doubleValue()); seriesInterest.add(mtg.runningtotalinterest.doubleValue()); seriesSavings.add(mtg.interestsaved.doubleValue()); } seriesPrincipal.add(mtg.runningtotalprincipal.doubleValue()); seriesInterest.add(mtg.runningtotalinterest.add(mtg.interestsaved).doubleValue()); seriesSavings.add(0); } dataset.addSeries(seriesPrincipal.toXYSeries()); dataset.addSeries(seriesInterest.toXYSeries()); dataset.addSeries(seriesSavings.toXYSeries()); return dataset; /* for (int i = 0; i < SERIES_NR; i++) { CategorySeries series = new CategorySeries("Demo series " + (i + 1)); for (int k = 0; k < nr; k++) { series.add(100 + r.nextInt() % 100); } dataset.addSeries(series.toXYSeries()); } return dataset; */ }
Example 52
| Project: realtrack-android-master File: ParticipationSummaryActivity.java View source code |
@Override
protected void onRestoreInstanceState(Bundle savedState) {
super.onRestoreInstanceState(savedState);
// restore the current data, for instance when changing the screen orientation
mDataset = (XYMultipleSeriesDataset) savedState.getSerializable("dataset");
mRenderer = (XYMultipleSeriesRenderer) savedState.getSerializable("renderer");
mCurrentSeries = (XYSeries) savedState.getSerializable("current_series");
}Example 53
| Project: YiTouQian-master File: ChartFactory.java View source code |
/**
* Creates a combined XY chart view.
*
* @param context the context
* @param dataset the multiple series dataset (cannot be null)
* @param renderer the multiple series renderer (cannot be null)
* @param types the chart types (cannot be null)
* @return a combined XY chart graphical view
* @throws IllegalArgumentException if dataset is null or renderer is null or
* if a dataset number of items is different than the number of
* series renderers or number of chart types
*/
public static final GraphicalView getCombinedXYChartView(Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, String[] types) {
if (dataset == null || renderer == null || types == null || dataset.getSeriesCount() != types.length) {
throw new IllegalArgumentException("Dataset, renderer and types should be not null and the datasets series count should be equal to the types length");
}
checkParameters(dataset, renderer);
CombinedXYChart chart = new CombinedXYChart(dataset, renderer, types);
return new GraphicalView(context, chart);
}Example 54
| Project: com.numix.calculator-master File: Graph.java View source code |
public XYMultipleSeriesDataset getDataset() {
return mDataset;
}