Bir hizmetten diğer uygulamalar üzerinde ekranda bir (fare işaretçisi) simgesi çizmek istiyorum. İşlevselliği uyguladım ve navigasyon çubuğundan ayrı olarak ekranın üzerine çizebiliyorum. Burada severalotherquestions'u araştırdım ve TYPE_SYSTEM_OVERLAY
, TYPE_TOAST
, TYPE_SYSTEM_ERROR
ve diğer bazı pencere türlerini denemeden denedim.Android sürümünde gezinme çubuğu (ve diğer uygulamalar) üzerine gelin> = 5
Odağı yakalamaya çalışmıyorum, sadece bir veya iki fare için ekranda bir fare işaretçisi çiziyorum. Gezinme çubuğu üzerinde çizim yapmaya çalıştığımda, yalnızca (aslında, yükseklik için manuel boyut belirttiğimde bile, RelativeLayout gezinme çubuğuyla kenarda biter) gider. Aşağıdaki ekran görüntüsü, ekranın sağ alt kısmındaki el işaretçisini göstermektedir. Onu yerleştirebileceğim kadar düşük. Uygulamamdaki gezinme çubuğunu saklamaya çalışmıyorum - diğer uygulamalar üzerinde çizim yapmaya çalışıyorum. Hatta ayarlama çalıştı
xpos
ve ypos
WindowManager.LayoutParams
durumda ayarları ofset, ama bu sadece düzeni uzaklıklar ve hala) navigasyon çubuğunun altındaki gider.
Ben bu pencereyi göstermek için kullanıyorum düzen parametreleri:
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN |
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
PixelFormat.TRANSPARENT);
Sonra WindowManager için bu parametrelerle RelativeLayout
ekliyorum: windowManager.addView(relativeLayout, params);
Eğer izin beyan mü 'Manifest'inizde dosyadaki diğer apps' üzerinde çizim –
mr.icetea @ evet, elbette Aksi takdirde hiç çizmek mümkün olmaz ben üzerinde ince çıkarabiliriz?.. durum çubuğu da, sadece gezinme çubuğunun üzerinden değil (altta, arka tarafta, ev ve son yazılım tuşlarında) – miha