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

  • 2ndfloor91

    2ndfloor91

    17 Kasım 2007
  • AutoklubZAPRESIC

    AutoklubZAPR

    17 Mayıs 2011
  • Wild Academy

    Wild Academy

    8 Aralık 2009