2016-10-24 28 views
0

windowmanagerでaddviewを使用して単純なロック画面を実行していますが、表示が追加される前に表示される前に白い厄介なページが追加されています。私はビューの背景を他の色に設定しようとしましたが、何も影響を受けませんでしたので、アクティビティの背景色を変更した後、ウィンドウビューに関連するかもしれないと思います。windowmanagerにaddviewすると白い空白の画面が表示される

ps:finish()の前に呼び出したときにビューを削除すると、白いビューが表示されますが、ondestroyedのビューを削除すると少し遅れますが、白いビューは表示されません。

addView/removeViewを使用すると、この白いビューを削除/非表示にすることはできますか?

public static synchronized LockUtil getInstance(Activity act) { 
    if (mLockLayer == null) { 
     mLockLayer = new LockUtil(act); 
    } 
    return mLockLayer; 
} 

private LockUtil(Activity act) { 
    mActivty = act; 
    init(); 
} 

private void init() { 
    isLocked = false; 
    if (null == mWindowManager) { 
     mWindowManager = ((WindowManager) mActivty.getSystemService(Context.WINDOW_SERVICE)); 
    } 
    mLockViewLayoutParams = new WindowManager.LayoutParams(); 
    mLockViewLayoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; 
    mLockViewLayoutParams.height = WindowManager.LayoutParams.MATCH_PARENT; 
    mLockViewLayoutParams.type = WindowManager.LayoutParams.TYPE_PHONE; 
    mLockViewLayoutParams.flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; 
    mLockViewLayoutParams.windowAnimations = android.R.style.Animation_Translucent; 
} 

public synchronized void lock() { 
    if (mLockView != null && !isLocked) { 
     mWindowManager.addView(mLockView, mLockViewLayoutParams); 
     isLocked = true; 
    } 
} 

public synchronized void unlock() { 
    if (mWindowManager != null && isLocked) { 
     try{ 
      mWindowManager.removeView(mLockView); 
      isLocked = false; 
     }catch(IllegalArgumentException e){ 
      Logger.e("LockUtil unlock failed:"+e.getMessage()); 
     } 
    } 
    mActivty = null; 
} 

答えて

1

は後に研究の一部を作り、白い背景には、活性(ウィンドウ)の背景色であるので、それを除去するために、私たちは、テーマに透明に色を設定する必要があります。

<style name="Theme.Transparent" parent="@style/Theme.AppCompat.Light.Dialog"> 
    <item name="android:windowIsTranslucent">true</item> 
    <item name="android:windowBackground">@android:color/transparent</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:backgroundDimEnabled">false</item> 
</style> 
関連する問題