Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import com.github.mikephil.charting.interfaces.datasets.ILineDataSet;
import com.github.mikephil.charting.utils.ColorTemplate;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity implements SensorEventListener {
Expand All @@ -39,6 +40,9 @@ protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

// if you wanna checkout gravity, set this "TYPE_ACCELEROMETER_UNCALIBRATED" flag and change
// the LeftAxis.setAxisMinimum to -13f
// mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER_UNCALIBRATED);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION);

List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
Expand Down Expand Up @@ -71,7 +75,7 @@ protected void onCreate(Bundle savedInstanceState) {
mChart.setBackgroundColor(Color.WHITE);

LineData data = new LineData();
data.setValueTextColor(Color.WHITE);
data.setValueTextColor(Color.BLACK);

// add empty data
mChart.setData(data);
Expand All @@ -81,19 +85,19 @@ protected void onCreate(Bundle savedInstanceState) {

// modify the legend ...
l.setForm(Legend.LegendForm.LINE);
l.setTextColor(Color.WHITE);
l.setTextColor(Color.BLACK);

XAxis xl = mChart.getXAxis();
xl.setTextColor(Color.WHITE);
xl.setTextColor(Color.BLACK);
xl.setDrawGridLines(true);
xl.setAvoidFirstLastClipping(true);
xl.setEnabled(true);

YAxis leftAxis = mChart.getAxisLeft();
leftAxis.setTextColor(Color.WHITE);
leftAxis.setTextColor(Color.BLACK);
leftAxis.setDrawGridLines(false);
leftAxis.setAxisMaximum(10f);
leftAxis.setAxisMinimum(0f);
leftAxis.setAxisMinimum(-10f);
leftAxis.setDrawGridLines(true);

YAxis rightAxis = mChart.getAxisRight();
Expand All @@ -110,32 +114,76 @@ protected void onCreate(Bundle savedInstanceState) {
private void addEntry(SensorEvent event) {

LineData data = mChart.getData();

if (data != null) {

ILineDataSet set = data.getDataSetByIndex(0);
// set.addEntry(...); // can be called as well

if (set == null) {
set = createSet();
data.addDataSet(set);
LineData newData = createLinesSet();
mChart.setData(newData);
}
else{
ILineDataSet set1 = data.getDataSetByLabel("X",false);
ILineDataSet set2 = data.getDataSetByLabel("Y",false);
ILineDataSet set3 = data.getDataSetByLabel("Z",false);
set1.addEntry(new Entry(set1.getEntryCount(), event.values[0]));
set2.addEntry(new Entry(set2.getEntryCount(), event.values[1]));
set3.addEntry(new Entry(set3.getEntryCount(), -event.values[2]));
data.notifyDataChanged();
mChart.notifyDataSetChanged();
mChart.setVisibleXRangeMaximum(150);
mChart.moveViewToX(data.getEntryCount());
}
}
}

// data.addEntry(new Entry(set.getEntryCount(), (float) (Math.random() * 80) + 10f), 0);
data.addEntry(new Entry(set.getEntryCount(), event.values[0] + 5), 0);
data.notifyDataChanged();

// let the chart know it's data has changed
mChart.notifyDataSetChanged();

// limit the number of visible entries
mChart.setVisibleXRangeMaximum(150);
// mChart.setVisibleYRange(30, AxisDependency.LEFT);

// move to the latest entry
mChart.moveViewToX(data.getEntryCount());

}
private LineData createLinesSet() {
List<Entry> valsComp1 = new ArrayList<Entry>();
Entry c1e1 = new Entry(0f, 0f);
valsComp1.add(c1e1);
List<Entry> valsComp2 = new ArrayList<Entry>();
Entry c2e1 = new Entry(0f, 0f);
valsComp2.add(c2e1);
List<Entry> valsComp3 = new ArrayList<Entry>();
Entry c3e1 = new Entry(0f, 0f);
valsComp3.add(c3e1);

LineDataSet set1 = new LineDataSet(valsComp1, "X");
set1.setAxisDependency(YAxis.AxisDependency.LEFT);
set1.setLineWidth(3f);
set1.setColor(Color.MAGENTA);
set1.setHighlightEnabled(false);
set1.setDrawValues(false);
set1.setDrawCircles(false);
set1.setMode(LineDataSet.Mode.LINEAR);
set1.setCubicIntensity(0.2f);

LineDataSet set2 = new LineDataSet(valsComp2, "Y");
set2.setAxisDependency(YAxis.AxisDependency.LEFT);
set2.setLineWidth(3f);
set2.setColor(Color.BLUE);
set2.setHighlightEnabled(false);
set2.setDrawValues(false);
set2.setDrawCircles(false);
set2.setMode(LineDataSet.Mode.LINEAR);
set2.setCubicIntensity(0.2f);

LineDataSet set3 = new LineDataSet(valsComp3, "Z");
set3.setAxisDependency(YAxis.AxisDependency.LEFT);
set3.setLineWidth(3f);
set3.setColor(Color.BLACK);
set3.setHighlightEnabled(false);
set3.setDrawValues(false);
set3.setDrawCircles(false);
set3.setMode(LineDataSet.Mode.LINEAR);
set3.setCubicIntensity(0.2f);

List<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
dataSets.add(set1);
dataSets.add(set2);
dataSets.add(set3);
LineData output_data = new LineData(dataSets);
return output_data;
}

private LineDataSet createSet() {
Expand Down