2012-07-16 10 views

Odpowiedz

18

Jeśli chcesz po prostu wyświetlić coś, możesz wyświetlić go na górze wszystkiego, nawet na ekranie blokady.

Jeśli chcesz, aby coś było klikalne, możesz wyświetlić go na czymkolwiek poza blokadą ekranu.

Oto próbka, modyfikować do własnych potrzeb:

Tworzenie usługi i wykonaj następujące czynności:

//These three are our main components. 
WindowManager wm; 
LinearLayout ll; 
WindowManager.LayoutParams ll_lp; 

//Just a sample layout parameters. 
ll_lp = new WindowManager.LayoutParams(); 
ll_lp.format = PixelFormat.TRANSLUCENT; 
ll_lp.height = WindowManager.LayoutParams.FILL_PARENT; 
ll_lp.width = WindowManager.LayoutParams.FILL_PARENT; 
ll_lp.gravity = Gravity.CLIP_HORIZONTAL | Gravity.TOP; 

//This one is necessary. 
ll_lp.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; 

//Play around with these two. 
ll_lp.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; 
ll_lp.flags = ll_lp.flags | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; 

//This is our main layout. 
ll = new LinearLayout(this); 
ll.setBackgroundColor(android.graphics.Color.argb(0, 0, 0, 0)); 
ll.setHapticFeedbackEnabled(true); 

//And finally we add what we created to the screen. 
wm.addView(ll, ll_lp); 
+0

Dzięki. To działało z android.permission.SYSTEM_ALERT_WINDOW – Abi

+0

Hatcyl, czy możesz podać mi cały kod, jeśli nie masz nic przeciwko, że będę w stanie zrozumieć cały przepływ. – Max

+0

@yacyl, czy wypróbowałeś aplikację notifierpro? Pokazuje także na górze ekranu blokady. I jest klikalne. Co to może być? – Enigma

3

są następujące opcje dotyczące sposobu wyświetlania widoku.

Spowoduje to, że będzie to nakładka na wszystko (w tym ekran blokady), ale nie będzie klikalna. WindowManager.LayoutParams. TYPE_SYSTEM_OVERLAY

To pozwoli klikalny, ale nie będzie na ekranie blokady WindowManager.LayoutParams.TYPE_SYSTEM_ALERT

uczyni go ponad wszystko (łącznie z ekranu blokady) I kliknąć. WindowManager.LayoutParams.TYPE_SYSTEM_ERROR

Jedną rzeczą, aby pamiętać o używaniu "TYPE_SYSTEM_ERROR". Jeśli utworzysz zdarzenie click, wszystko, co się pojawi, stanie się za ekranem blokady.

Powiązane problemy