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

  • Kanál používateľa McsFuego

    Kanál použ

    12 EKİM 2011
  • TheOtherMau5

    TheOtherMau5

    6 Mart 2012
  • Video Copilot

    Video Copilo

    21 EYLÜL 2006