SORU
11 Mart 2011, Cuma


Nasıl android ile doldurun olayı algılamak için?

Nasıl android ile doldurun bir olay olarak algılayabilir miyim? Nasıl salla yönünü algılayabilir miyim?

Sarsıntı meydana geldiğinde bir imageview görüntüyü değiştirmek istiyorum.

CEVAP
11 Mart 2011, Cuma


Görünüm kodu noktasından, SensorListener uygulamak gerekir:

public class ShakeActivity extends Activity implements SensorListener

Bir SensorManager elde etmek gerekir:

sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE);

Ve istediğiniz bayrakları ile bu sensör kayıt:

sensorMgr.registerListener(this,
SensorManager.SENSOR_ACCELEROMETER,
SensorManager.SENSOR_DELAY_GAME);

Senin onSensorChange (), bir sarsıntı olup olmadığını belirlemek yöntem:

public void onSensorChanged(int sensor, float[] values) {
  if (sensor == SensorManager.SENSOR_ACCELEROMETER) {
    long curTime = System.currentTimeMillis();
    // only allow one update every 100ms.
    if ((curTime - lastUpdate) > 100) {
      long diffTime = (curTime - lastUpdate);
      lastUpdate = curTime;

      x = values[SensorManager.DATA_X];
      y = values[SensorManager.DATA_Y];
      z = values[SensorManager.DATA_Z];

      float speed = Math.abs(x y z - last_x - last_y - last_z) / diffTime * 10000;

      if (speed > SHAKE_THRESHOLD) {
        Log.d("sensor", "shake detected w/ speed: "   speed);
        Toast.makeText(this, "shake detected w/ speed: "   speed, Toast.LENGTH_SHORT).show();
      }
      last_x = x;
      last_y = y;
      last_z = z;
    }
  }
}

Shake eşik olarak tanımlanır:

private static final int SHAKE_THRESHOLD = 800;

Çok değişik yöntemler, sallamak hareket algılama vardır. link.Bu link çalışmıyor veya link öldüyse(, look at this web archive.)bak.

example şuna bir bakın android shake dinleyici algılar.

Not:SensorListener önerilmiyor. SensorEventListener yerine kullanabiliriz. Here is a quick example using SensorEventListener.

Teşekkürler.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • akalyne

    akalyne

    13 Mayıs 2009
  • Mindy

    Mindy

    20 NİSAN 2006
  • Top10Series

    Top10Series

    26 Kasım 2008