2017-06-28 9 views
-1

近接センサ用のリアルタイムグラフを描きたいと思います。私はプロフェッショナルではありませんAndroidスタジオの近接センサーのリアルタイムグラフを描画するにはどうすればよいですか?

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); 

    } 
} 

答えて

0

もちろん可能です。このコードは、センサーの価値を得るのに役立ちます。次に、onSensorChangedで値を取得するためにevent.values[0]を使用し、希望どおりに描画します。

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 * グラフに値を追加するために、あなたは単に、シリーズに何かデータを追加する必要があります:あなたは、たとえば、ここで見ることができ

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

を: RealTime chartまたはGraphView Realtime plot of Sensor Data

+0

ありがとうございます。私はあなたと同じコードを使用していますが、私の問題は、近くに表示されているセンサーに指をかけ、指が離れているときに指を離すときです。リアルタイムグラフを描くグラフライブラリを追加しました。このセンサーを使ってフォトプレチスモグラフ信号を記録するアプリケーションを開発していますが、私は混乱しています。 – Hamid7497

+0

問題はまだ不明です。私が理解したことは、プロキシミティ値をグラフ上に置くことができるように近接値を設定し、それらを取得する方法を提案したことです(onSensorChangedでevent.values [0]を使用)。あなたの問題が他のものであれば、必要なものを正確に説明してください。 – yakobom

+0

私は光の変化のために指を置いたときに近接値が毎回変わる必要があると思うが、グラフ上にリアルタイムの光の値を入れる方法はわからない。 – Hamid7497

関連する問題