2014-03-29 141 views
2

有誰知道我可以如何創建浮動窗口? (下圖顯示了我的意思) - source codeAndroid上的浮動應用程序(窗口應用程序)

我已閱讀過各種網站,爲了做到這一點,一個應用程序必須作爲一個服務運行,該應用程序又應該使用'TYPE_SYSTEM_ALERT'作爲一個活動運行。

如果以上是或不是真的......我仍然不知道如何實現代碼。有人能寫展示如何將一個簡單的應用程序(點擊按鈕,做的東西)可以做成一個浮動窗口中的一些代碼,謝謝:)

這也可以幫助 - facebook chatheads

Floating Window App

+0

這是否計算器屏幕你希望顯示的任何應用程序的頂部? – Libin

+1

是的,這是正確的+它應該是可調整大小和可移動 – sudoman

回答

3

最簡單方法是用偉大的開源庫突出:https://github.com/pingpongboss/StandOut

+0

問題是,彈出窗口不是Android(或大多數其他類似平臺)的標準功能。你需要外部幫助。 –

+2

我已經知道StandOut庫,但我想知道如何使用我自己的代碼。謝謝你的提示,雖然 – sudoman

+0

@sudoman我之前使用過StandOut,而且非常好。在發佈的鏈接FD_中,您可以按照[線索在xda](http://forum.xda-developers.com/showthread.php?t=1688531)使用它。 –

2

您可以使用窗口經理膨脹視圖。像這樣的東西:

LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); 


overlay = (RelativeLayout) inflater.inflate(R.layout.overlay, null); 

final LayoutParams params = new LayoutParams(
         LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 
         LayoutParams.TYPE_SYSTEM_ALERT, 
         LayoutParams.FLAG_NOT_FOCUSABLE | LayoutParams.FLAG_NOT_TOUCH_MODAL, 
         PixelFormat.TRANSLUCENT); 


WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE); 
if (overlay.isShown()){ 
     wm.updateViewLayout(overlay, params); 
} 
else { 

     // add overlay 
     wm.addView(overlay, params); 
} 

這個你可以膨脹任何應用程序的任何視圖。

希望它可以幫助你!