everblut

acceleracion

Jan 14th, 2013
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.94 KB | None | 0 0
  1. package net.everblut.accelexample;
  2.  
  3. import java.util.List;
  4.  
  5. import android.hardware.Sensor;
  6. import android.hardware.SensorEvent;
  7. import android.hardware.SensorEventListener;
  8. import android.hardware.SensorManager;
  9. import android.os.Bundle;
  10. import android.app.Activity;
  11. import android.content.pm.ActivityInfo;
  12. import android.view.View;
  13. import android.widget.ImageView;
  14. import android.widget.TextView;
  15.  
  16.  
  17. public class AccelActivity extends Activity implements SensorEventListener {
  18.  
  19.     private float actualX = 0, oldX =0, deltaX = 0;
  20.     private float actualY = 0, oldY =0, deltaY = 0;
  21.     private float actualZ = 0, oldZ =0, deltaZ = 0;
  22.     private float umbral = 4.0f;
  23.     private TextView labelX, labelY, labelZ;
  24.     private ImageView imagen;
  25.        
  26.    
  27.    
  28.     @Override
  29.     protected void onCreate(Bundle savedInstanceState) {
  30.         super.onCreate(savedInstanceState);
  31.         setContentView(R.layout.activity_accel);
  32.         labelX = (TextView) findViewById(R.id.labelX);
  33.         labelY = (TextView) findViewById(R.id.labelY);
  34.         labelZ = (TextView) findViewById(R.id.labelZ);
  35.         this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  36.         imagen = (ImageView) findViewById(R.id.flecha);
  37.     }
  38.    
  39.     @Override
  40.     protected void onResume(){
  41.         super.onResume();
  42.         SensorManager senManager = (SensorManager) getSystemService(SENSOR_SERVICE);
  43.         List<Sensor> sensores = senManager.getSensorList(Sensor.TYPE_ACCELEROMETER);
  44.         if(sensores.size() > 0 ){
  45.             senManager.registerListener(this,sensores.get(0), SensorManager.SENSOR_DELAY_NORMAL);
  46.         }
  47.     }
  48.    
  49.     @Override
  50.     protected void onStop(){
  51.         SensorManager senManager = (SensorManager) getSystemService(SENSOR_SERVICE);
  52.         senManager.unregisterListener(this);
  53.         super.onStop();
  54.     }
  55.    
  56.     @Override
  57.     public void onAccuracyChanged(Sensor arg0, int arg1) {}
  58.  
  59.     @Override
  60.     public void onSensorChanged(SensorEvent event) {
  61.         synchronized(this){
  62.             actualX = event.values[0];
  63.             actualY = event.values[1];
  64.             actualZ = event.values[2];
  65.             if(oldX == 0 && oldY == 0 && oldZ == 0){
  66.                 oldX = actualX;
  67.                 oldY = actualY;
  68.                 oldZ = actualZ;
  69.             }else{
  70.                 deltaX = (Math.abs(oldX - actualX) < umbral )? 0.0f : Math.abs(oldX - actualX);
  71.                 deltaY = (Math.abs(oldY - actualY) < umbral )? 0.0f : Math.abs(oldY - actualY);
  72.                 deltaZ = (Math.abs(oldZ - actualZ) < umbral )? 0.0f : Math.abs(oldZ - actualZ);
  73.                 oldX = actualX;
  74.                 oldY = actualY;
  75.                 oldZ = actualZ;
  76.             }
  77.             labelX.setText(Float.toString(deltaX));
  78.             labelY.setText(Float.toString(deltaY));
  79.             labelZ.setText(Float.toString(deltaZ));
  80.             imagen.setVisibility(View.VISIBLE);
  81.             if(deltaX > deltaY) {
  82.                 imagen.setImageResource(R.drawable.shaker1);
  83.             }else if(deltaY > deltaX){
  84.                 imagen.setImageResource(R.drawable.shaker2);   
  85.             }else{
  86.                 imagen.setVisibility(View.INVISIBLE);
  87.             }
  88.         }
  89.         labelX.setText("Eje X> "+Float.toString(event.values[0]));
  90.         labelY.setText("Eje Y> "+Float.toString(event.values[1]));
  91.         labelZ.setText("Eje Z> "+Float.toString(event.values[2]));
  92.     }
  93.  
  94. }
Advertisement
Add Comment
Please, Sign In to add comment