2012-04-28 140 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 :)

十六进制值