2012-04-28 282 views
0

我有一些代碼(Android的源),和我試着去設置的LayoutParam設置的LayoutParams透明度

第一不透明度,我這有

mLayoutParams = new WindowManager.LayoutParams(
      ViewGroup.LayoutParams.MATCH_PARENT, 
      height, 
      WindowManager.LayoutParams.TYPE_STATUS_BAR, 
      WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE 
       | WindowManager.LayoutParams.FLAG_TOUCHABLE_WHEN_WAKING 
       | WindowManager.LayoutParams.FLAG_SPLIT_TOUCH, 
      // Setup statusbar transparency preference 
      mOpacity != 100 ? PixelFormat.TRANSPARENT : PixelFormat.RGB_565); 

然後我註冊一個SettingsObserver,爲重裝mOpacity,但如果我將Opacity設置回100,則不會是RGB_565,因爲LayoutParams已經定義了TRANSPARENT格式。我想知道是否有一些方法來設置這個獨立的,因爲如果我添加到obsever整個代碼,它最終創造無限的Layouts,並覆蓋它們。另一個有用的東西是如何在創建新的One之前銷燬mLayoutParams。

在此先感謝。

回答

0

很容易修復。 我剛剛更換

mOpacity != 100 ? PixelFormat.TRANSPARENT : PixelFormat.RGB_565 

PixelFormat.TRANSPARENT 

然後,當我想設置100%的不透明度,我只是發送了等於100 :)

十六進制值