Ich mache einen einfachen Lockscreen mit dem Addview in Windowmanager, obwohl ich erfolgreich die Lockscreen-Ansicht hinzugefügt habe, aber bevor die Ansicht hinzugefügt wird, wird eine weiße lästige Seite hinzugefügt, bevor die Ansicht angezeigt wird. Ich habe versucht, den Hintergrund der Ansicht auf andere Farbe zu setzen, aber es hat nichts beeinflusst, also denke ich, dass es etwas mit der Fensteransicht zu tun haben könnte, nachdem Hintergrundfarbe in der Aktivität geändert wurde, verzögerte addview, erschien es immer noch.Ein leerer weißer Bildschirm erschien beim Hinzufügen zum Fenstermanager
ps: wenn Ansicht entfernen, wenn ich vor beendete(), dann weiße Ansicht erschien, aber wenn Ansicht in destroyed entfernen, wird es ein wenig verzögert, aber die weiße Ansicht wird nicht angezeigt.
Wie kann ich diese weiße Ansicht bei addView/removeView entfernen/verstecken?
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;
}