2012-04-20 67 views
0

我有一個Android應用程序,它具有打開和關閉背景圖像的設置。Android:切換背景的開關

但是,我有一個用戶給我發電子郵件說它會對他的設備造成壞影響,Galaxy Nexus運行4.0.2(請參閱https://www.dropbox.com/s/d61wyb325ckia9r/Screenshot_2012-04-19-00-02-27.png)我無法在任何模擬器中重現此問題(所有版本從2.2上)或我的任一設備(2.3.7 Nexus One和Evo 4g)。

它似乎與透明度設置的東西拋出渲染關閉。

下面是我用於切換背景圖片的代碼。

void setBackground(){ 
    if(hideBackground==true){ 
     getWindow().setBackgroundColor(-16777216); 
     getWindow().setBackgroundDrawableResource(R.drawable.black); 
    } 
    else{ 
     int pics[] = {R.drawable.bloodseeker, R.drawable.drow, R.drawable.morphling}; 
     Random rand = new Random(); 
     int pos = rand.nextInt(pics.length-1); 
     getWindow().setBackgroundDrawable(null); 
     getWindow().setBackgroundColor(0); 
     getWindow().setBackgroundDrawableResource(pics[pos]); 
    } 
} 

任何人都能指出我正確的方向來解決這個問題?

+0

爲什麼你要連續多次設置背景?只需要調用setBackgroundDrawableResource(pics [pos])就可以了。此外,當前的API沒有爲window.setBackgroundColor()實現,並且您顯示的圖片正在運行ICS - 該函數可能已被棄用 – JRaymond 2012-04-20 18:44:29

+0

原始代碼沒有多個背景更改。我在收到通知後發現有問題試圖解決它們時添加了它們。 原始的代碼集只有 getWindow()。setBackgroundDrawableResource(pics [pos]);和getWindow()。setBackgroundDrawableResource(R.drawable.black); – Nedlinin 2012-04-20 19:02:40

+1

如何設置根視圖的背景而不是窗口? – JRaymond 2012-04-20 19:19:30

回答

0

由於JRaymond在我的原始帖子中發表評論,設置了根視圖的背景可以解決這個問題。