Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.everblut.accelexample;
- import java.util.List;
- import android.hardware.Sensor;
- import android.hardware.SensorEvent;
- import android.hardware.SensorEventListener;
- import android.hardware.SensorManager;
- import android.os.Bundle;
- import android.app.Activity;
- import android.content.pm.ActivityInfo;
- import android.view.View;
- import android.widget.ImageView;
- import android.widget.TextView;
- public class AccelActivity extends Activity implements SensorEventListener {
- private float actualX = 0, oldX =0, deltaX = 0;
- private float actualY = 0, oldY =0, deltaY = 0;
- private float actualZ = 0, oldZ =0, deltaZ = 0;
- private float umbral = 4.0f;
- private TextView labelX, labelY, labelZ;
- private ImageView imagen;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_accel);
- labelX = (TextView) findViewById(R.id.labelX);
- labelY = (TextView) findViewById(R.id.labelY);
- labelZ = (TextView) findViewById(R.id.labelZ);
- this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
- imagen = (ImageView) findViewById(R.id.flecha);
- }
- @Override
- protected void onResume(){
- super.onResume();
- SensorManager senManager = (SensorManager) getSystemService(SENSOR_SERVICE);
- List<Sensor> sensores = senManager.getSensorList(Sensor.TYPE_ACCELEROMETER);
- if(sensores.size() > 0 ){
- senManager.registerListener(this,sensores.get(0), SensorManager.SENSOR_DELAY_NORMAL);
- }
- }
- @Override
- protected void onStop(){
- SensorManager senManager = (SensorManager) getSystemService(SENSOR_SERVICE);
- senManager.unregisterListener(this);
- super.onStop();
- }
- @Override
- public void onAccuracyChanged(Sensor arg0, int arg1) {}
- @Override
- public void onSensorChanged(SensorEvent event) {
- synchronized(this){
- actualX = event.values[0];
- actualY = event.values[1];
- actualZ = event.values[2];
- if(oldX == 0 && oldY == 0 && oldZ == 0){
- oldX = actualX;
- oldY = actualY;
- oldZ = actualZ;
- }else{
- deltaX = (Math.abs(oldX - actualX) < umbral )? 0.0f : Math.abs(oldX - actualX);
- deltaY = (Math.abs(oldY - actualY) < umbral )? 0.0f : Math.abs(oldY - actualY);
- deltaZ = (Math.abs(oldZ - actualZ) < umbral )? 0.0f : Math.abs(oldZ - actualZ);
- oldX = actualX;
- oldY = actualY;
- oldZ = actualZ;
- }
- labelX.setText(Float.toString(deltaX));
- labelY.setText(Float.toString(deltaY));
- labelZ.setText(Float.toString(deltaZ));
- imagen.setVisibility(View.VISIBLE);
- if(deltaX > deltaY) {
- imagen.setImageResource(R.drawable.shaker1);
- }else if(deltaY > deltaX){
- imagen.setImageResource(R.drawable.shaker2);
- }else{
- imagen.setVisibility(View.INVISIBLE);
- }
- }
- labelX.setText("Eje X> "+Float.toString(event.values[0]));
- labelY.setText("Eje Y> "+Float.toString(event.values[1]));
- labelZ.setText("Eje Z> "+Float.toString(event.values[2]));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment