SORU
15 Temmuz 2011, Cuma


Nasıl bir hizmet dokunma hareketleri için/olayları dinleyebilir?

SwipePad ve Dalga Launcher gibi uygulamalar sadece bir hizmeti aracılığıyla dokunma hareketleri/olayları tespit edebiliyoruz nasıl merak ediyorum. Bu uygulamalar kendi Faaliyeti olmadığı halde dokunmatik hareketleri tespit edebiliyoruz. İnternette baktım ve nasıl böyle bir şey yaptıklarını bulamadım.

Benim asıl soru bir hizmeti düzenli bir Aktivite veya özgün Etkinlik kapsamında olmayabilir olsa bile MotionEvents alabilirsiniz gibi dokunmatik guestures/olayları dinlemek. Aslında bir üstte ne olursa olsun, bir kullanıcı belirli bir dokunmatik jest recongize ve bu jest recongized ne zaman bir şey yapacak bir uygulama oluşturmak çalışıyorum. Dokunmatik recongition bir iş parçacığı bir hizmet olarak arka planda çalışıyor olacak.

CEVAP
30 AĞUSTOS 2012, PERŞEMBE


Bu aynı sorunu vardı ve en sonunda bu işi çözdüm! Bu yazı sayesinde: creating a system overlay (always on top) button in android. Bir kaplama (ve bu da Andoid ICS kullanabilirsiniz anlamına gelir) yerine bir uyarı penceresi kullanmanız gerekir:

WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL|WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
                PixelFormat.TRANSLUCENT);

O zaman sadece bu şekilde bir GestureListener takın:

GestureDetector gestureDetector = new GestureDetector(this, new AwesomeGestureListener());
View.OnTouchListener gestureListener = new View.OnTouchListener() {
      public boolean onTouch(View v, MotionEvent event) {
            return gestureDetector.onTouchEvent(event);
      }
};

overlayView.setOnTouchListener(gestureListener);

Yay!

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • michal lelkowski

    michal lelko

    9 Temmuz 2006
  • Smith Micro Graphics

    Smith Micro

    15 Mayıs 2008
  • TV nEW

    TV nEW

    25 AĞUSTOS 2012