Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/08/2012, 13:29
Avatar de daPhyre
daPhyre
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: [email protected] (Redirects to 127.0.0.1)
Mensajes: 2.404
Antigüedad: 16 años, 1 mes
Puntos: 142
Angulo de rotación del dispositivo con acelerometro

Estuve batallando un largo rato con encontrar la forma de encontrar en ángulo de rotación de un dispositivo android, para dibujar un bitmap rotado de acuerdo a dicho ángulo de rotación. al final resultó más sencillo de lo que pensé, y vengo a compartir lo conseguido, que con suerte servirá a alguien más

Código PHP:
package com.daPhyre.RotateAngle;

import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;

public class 
RotateBitmap extends Activity implements SensorEventListener  {
    private 
SensorManager sSensorManager;
    private 
Sensor sSensor;
    public 
float angle 0;

    @
Override
    
public void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
sSensorManager = (SensorManagergetSystemService(Context.SENSOR_SERVICE);
        
sSensor sSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
        
setContentView(R.layout.main);
    }

    @
Override
    
protected void onResume() {
        
super.onResume();
        
sSensorManager.registerListener(thissSensorSensor.TYPE_ACCELEROMETER);
    }

    @
Override
    
protected void onPause() {
        
super.onPause();
        
sSensorManager.unregisterListener(thissSensor);
    }

    public 
void onAccuracyChanged(Sensor sensorint accuracy) {
        
// TODO Auto-generated method stub
        
    
}

    public 
void onSensorChanged(SensorEvent event) {
        
// TODO Auto-generated method stub
        
if (event.sensor != sSensor)
            return;
        
        
float aX event.values[0];
        
float aY event.values[1];
        
//float aZ = event.values[2];
        
angle Math.atan2(aXaY)/(Math.PI/180);
    }

__________________
<signs>daPhyre</signs>
Jugaa.me


Adios al dolor de cabeza de IE...