2014-06-13 30 views
10

Czy możliwe jest programowe sprawdzenie, które flagi są obecnie aktywne w oknie?Uzyskiwanie aktywnych flag w systemie Android Okno

Możemy włączyć flagi z:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); 

Czy API zapewnia sposób, aby uzyskać listę aktualnie aktywnych flag? Dzięki

Odpowiedz

30

można użyć:

int flags = getWindow().getAttributes().flags; 

widać jest używany przez wdrożenie Window.setFlags():

public void setFlags(int flags, int mask) { 
    final WindowManager.LayoutParams attrs = getAttributes(); 
    attrs.flags = (attrs.flags&~mask) | (flags&mask); 
    ... 

Aby ustalić, czy poszczególne flagi są ustawione, należy użyć bitowego i. Na przykład:

if ((flags & WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION) != 0) ... 
+0

tak, ale zwróci mi int że doen't zaniepokojenie nthing ...: S – iGio90

+1

@ iGio90 int zawiera wszystkie flagi. wystarczy operacji bitowej, aby je wyodrębnić. Edytowałeś odpowiedź, sprawdź przykład. – matiash

+0

działa !!!! Dziękuję Ci! – iGio90