1. 程式人生 > >Android關於overdraw過度繪製問題的解決辦法getWindow().setBackgroundDrawable(null);

Android關於overdraw過度繪製問題的解決辦法getWindow().setBackgroundDrawable(null);

其實過度繪製通俗點來說就是給佈局設定上背景,那麼就會造成Overdraw,那麼當我們給頁面的最大的父類容器設定背景的時候,肯定會造成Overdraw了,那麼解決辦法大家可能都能在網上找到一二,其中辦法之一就是在頁面呼叫:

getWindow().setBackgroundDrawable(null);  

或者在主題裡面呼叫:

android:windowbackground="null"  `

這個方法的作用就是去除Window也就是DecorView的背景顏色,這個背景色也是會增加一層Overdraw的,所以,當我們給我們的頁面設定過背景時,就可以呼叫這句程式碼,減少頁面佈局最外的一層Overdraw,不過呼叫這句程式碼得注意以下幾點:
1.這句程式碼必須要在setContentView()方法之後呼叫,不然會出現還未給頁面設定佈局時,由於Window主題顏色被去除掉,介面會出現瞬間的黑影一閃而過,給使用者帶來不好的體驗。

2.必須要給activity最大的父佈局設定過背景,並且要match_parent,不然出現以下情況:
這裡寫圖片描述

原文地址