2017-06-28 1 views
-1

Ich möchte ein Echtzeitdiagramm für Näherungssensor zeichnen, ist es möglich. Ich bin kein ProfiWie zeichne ich ein Echtzeitdiagramm für Näherungssensor in Android Studio?

public class MainActivity extends AppCompatActivity { 

    private GraphView graph1; 
    private LineGraphSeries<DataPoint> Series; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     GraphView graph1 = (GraphView) findViewById(R.id.main_graph1); 

     Series = new LineGraphSeries<DataPoint>(); 
     graph1.addSeries(Series); 
     Viewport viewport = graph.getViewport(); 
     viewport.setYAxisBoundsManual(true); 
     viewport.setMinY(0); 
     viewport.setMaxY(10); 
     viewport.setScrollable(true); 

    } 
} 

Antwort

0

Natürlich ist es möglich. Dieser Code hilft Ihnen, den Wert des Sensors zu erhalten. Verwenden Sie dann in onSensorChangedevent.values[0], um den Wert zu erhalten, und zeichnen Sie ihn in beliebiger Weise.

import android.content.Context; 
import android.hardware.Sensor; 
import android.hardware.SensorEvent; 
import android.hardware.SensorEventListener; 
import android.hardware.SensorManager; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity implements SensorEventListener { 

private SensorManager mSensorManager; 
private Sensor mProximity; 
private static final int SENSOR_SENSITIVITY = 4; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
    mProximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); 

} 

@Override 
protected void onResume() { 
    super.onResume(); 
    mSensorManager.registerListener(this, mProximity, SensorManager.SENSOR_DELAY_NORMAL); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    mSensorManager.unregisterListener(this); 
} 

@Override 
public void onSensorChanged(SensorEvent event) { 
    /*if (event.sensor.getType() == Sensor.TYPE_PROXIMITY) { 
     if (event.values[0] >= -SENSOR_SENSITIVITY && event.values[0] <= SENSOR_SENSITIVITY) { 
      //near 
      Toast.makeText(getApplicationContext(), "near", Toast.LENGTH_SHORT).show(); 
     } else { 
      //far 
      Toast.makeText(getApplicationContext(), "far", Toast.LENGTH_SHORT).show(); 
     } 
    }*/ 
} 

@Override 
public void onAccuracyChanged(Sensor sensor, int accuracy) { 

} 

* EDIT * Um die Werte in das Diagramm hinzufügen möchten, sollten Sie einfach die Daten an die Reihe anzuhängen, so etwas wie:

series.appendData(new DataPoint(xPoint, lumValue), true, 1000); 

Sie können hier für ein Beispiel : RealTime chart oder GraphView Realtime plot of Sensor Data

+0

Vielen Dank. Ich benutze den gleichen Code wie du, aber mein Problem ist, wenn ich meinen Finger auf den Sensor setze, zeigt es in der Nähe und wenn ich meinen Finger entferne, zeigt es weit. Ich habe eine Grafikbibliothek hinzugefügt, um ein Echtzeitdiagramm zu zeichnen. Ich entwickle eine Anwendung, um Photoplethysmographiesignal unter Verwendung dieses Sensors aufzuzeichnen, aber ich bin verwirrt. – Hamid7497

+0

Ihr Problem ist noch unklar. Was ich verstanden habe, ist, dass Sie die Näherungswerte wollen, damit Sie sie in die Grafik einfügen können, und ich habe vorgeschlagen, wie Sie sie erhalten können (mit event.values ​​[0] in onSensorChanged). Wenn Ihr Problem etwas anderes ist, erklären Sie bitte genau, was Sie brauchen. – yakobom

+0

Ich denke, die Näherungswerte müssen sich jeden Moment ändern, wenn ich aufgrund der Lichtveränderungen den Finger darauf lege, aber ich weiß nicht, wie man die Lichtwerte in Echtzeit auf den Graphen legt. – Hamid7497

Verwandte Themen