ANDROID - hogyan lehetne ezt a két kodot összekombinálni?
A telefon x,y,z accelometer ertekeit szeretnem grafban megjeleniteni:
Ezen az oldalon van a kod a graf kesziteshez:
megj.:
mainjava:
package com.example.intel.myapplication;
import java.util.Random;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
import android.hardware.SensorManager;
import android.hardware.SensorEventListener;
import android.hardware.SensorEvent;
import android.hardware.Sensor;
import java.util.List;
import com.jjoe64.graphview.GraphView;
import com.jjoe64.graphview.Viewport;
import com.jjoe64.graphview.series.DataPoint;
import com.jjoe64.graphview.series.LineGraphSeries;
public class MainActivity extends AppCompatActivity {
SensorManager sm = null;
TextView textView1 = null;
List list;
SensorEventListener sel = new SensorEventListener() {
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
public void onSensorChanged(SensorEvent event) {
float[] values = event.values;
textView1.setText("x: " + values[0] + "\ny: " + values[1] + "\nz: " + values[2]);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//----------------------------------------------------------------------
LineGraphSeries<DataPoint> series;
//---------------------
// we get graph view instance
GraphView graph = (GraphView) findViewById(R.id.graph);
// data
series = new LineGraphSeries<DataPoint>();
graph.addSeries(series);
// customize a little bit viewport
Viewport viewport = graph.getViewport();
viewport.setYAxisBoundsManual(true);
viewport.setMinY(0);
viewport.setMaxY(10);
viewport.setScrollable(true);
//--------------------------------------------------------------------------
/* Get a SensorManager instance */
sm = (SensorManager) getSystemService(SENSOR_SERVICE);
textView1 = (TextView) findViewById(R.id.textView1);
list = sm.getSensorList(Sensor.TYPE_ACCELEROMETER);
if (list.size() > 0) {
sm.registerListener(sel, (Sensor) list.get(0), SensorManager.SENSOR_DELAY_NORMAL);
} else {
Toast.makeText(getBaseContext(), "Error: No Accelerometer.", Toast.LENGTH_LONG).show();
}
}
public void run() {
addEntry();
}
// add random data to graph
private void addEntry() {
// here, we choose to display max 10 points on the viewport and we scroll to end
// series.appendData(new DataPoint(values[0], RANDOM.nextDouble() * 10d), true, 10);
}
@Override
protected void onStop() {
if (list.size() > 0) {
sm.unregisterListener(sel);
}
super.onStop();
}
}
Ahogy látom, nem módosítottál semmit a két kódon, csak összemásoltad. Meg akarsz tanulni programozni, Androidra fejleszteni, vagy csak haveroknak összedobni valamit, és kalap-kabát, sosem nézel a terület felé? Ha előbbi, akkor először meg kéne érteni, hogy mit látsz, módosítgatva az eredeti kódot, hogy mi változik a futtatás során. Ha utóbbi...
Nem ismerem egyik grafikon (vagy angolul graph, de semmiképp nem gráf) rajzoló library-t, de elsőre úgy tűnik, hogy három LineGraphSeries-t kell létrehozni az egy helyett (a gyorsulásvektor egyes komponenseinek), és a gyorsulási adatokat ezekhez kell hozzáadni a kiírás helyett (a véletlenszerű adatgenerálást meg természetesen kiszedni).
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!