setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
0
A
回答
0
public void setFlags(int flags, int mask) {
final WindowManager.LayoutParams attrs = getAttributes();
attrs.flags = (attrs.flags&~mask) | (flags&mask);
mForcedWindowFlags |= mask;
dispatchWindowAttributesChanged(attrs);
}
(source)
兩個int
參數組合使用指定窗口標誌字段的比特設置哪個。
第一個是要複製的源,例如,
0000 0010 0000 0000
但是,這本身是不夠的,因爲程序無法知道這些位應該被複制,並且在你想保留目標字段。也許你甚至想要設置一個是0
。
所以第二個參數(mask
)指定了第一個參數中的哪些位。例如。
0000 0011 0000 0000
就意味着你要複製的第7和第8位
0000 0010 0000 0000
0000 0011 0000 0000
-------------------
.... ..10 .... .... << sets those to bits two 10 while the rest remains untouched
使用標誌的效果兩次是
0000 0010 0000 0000
0000 0010 0000 0000
-------------------
.... ..1. .... ....
只是一個指定你真正的意思的方式那一點標誌。你可以在flags
字段中使用全1。
假設最初的attrs.flags
(當前活動窗口的標誌)的值是
0000 0000 0101 0101
^^^^- FLAG_ALLOW_LOCK_WHILE_SCREEN_ON is enabled
| | |
| | |--- another enabled feature
| |
| -------- a flag that isn't set.
assume this is FLAG_FULLSCREEN
現在你要設置只是失蹤1位,但FLAG_FULLSCREEN
是一個完整的32位int
。如果你只是簡單地覆蓋所有的東西,你會失去所有設置好的其他位。
setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
意思是:「在從1參數的那些32位取我在參數2使能的位和替換的attrs.flags
與它們的內容。」
0000 0000 0101 0101
+ .... ..1. .... .... (param1 combined with param2, dots are "masked out")
= 0000 0010 0101 0101
現在全屏標誌也被設置。
+0
行知道了thx ... – itsom
相關問題
- 1. 爲什麼maskedEditExtender不能替換掩碼?
- 2. 爲什麼下面的代碼需要(int)?
- 3. 爲什麼我用下面的代碼獲得異常?
- 4. 爲什麼下面的UIAlertView代碼不能正常工作
- 5. 爲什麼下面的代碼非常慢?
- 6. 什麼是下面的PowerShell代碼的C#替代品?
- 7. 在下面的僞c代碼片段中,應該避免代碼重用的方法是什麼?
- 8. 這段代碼爲什麼不重複頁面的主體?
- 9. [int]在下面的代碼中聲明向量
- 10. 如何開發替代重複代碼塊的方法
- 11. 爲什麼下面的代碼是錯誤(約重載決議)
- 12. 爲什麼下面的向量代碼完全被破壞?
- 13. PHP代碼重複。在什麼時候複製代碼是正確的方式?
- 14. 在位掩碼中設置位的正確方法是什麼?
- 15. android的替代方法是什麼:代碼中的條目是什麼?
- 16. 什麼在下面的代碼
- 17. Python中的替代方法是什麼?
- 18. C#中的替代方法是什麼#
- 19. 棄用com.apple.eawt.ApplicationListener的替代方法有什麼替代方法
- 20. 爲什麼new在下面的jquery代碼中是可選的?
- 21. 爲什麼c值在給定的代碼中重複?
- 22. 爲什麼在使用python的畝代碼中有重複
- 23. 爲什麼下面的代碼轉換爲java字節碼中的新增重複操作指令?
- 24. 什麼是「=!」在下面的PHP代碼中是什麼意思?
- 25. 2重複方法的代碼重構
- 26. 在下面的JavaScript代碼中,爲什麼輸出未定義?
- 27. 爲什麼Synchronization在下面的代碼中不起作用?
- 28. 爲什麼我在下面的代碼中沒有出錯?
- 29. 爲什麼在下面的代碼中有錯誤?
- 30. 爲什麼在下面的代碼中不是== 0?
你從哪裏得到這個信息? – Androiderson
由於掩碼是奇數。 '(-1,FLAG_FULLSCREEN)'應該是相同的。 http://developer.android.com/reference/android/view/Window.html#setFlags%28int,%20int%29 – zapl
@zapl你的意思是說位掩碼是or'ed正確? – itsom