2012-04-20 10 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

+0

元のコードに複数の背景の変更がありませんでした。私はそれを解決しようとして問題があると通知された後にそれらを追加しました。 は、コードの元のセットは、単に は、GetWindowを有していた()setBackgroundDrawableResource(写真[POS])。およびgetWindow()。setBackgroundDrawableResource(R.drawable.black); – Nedlinin

+1

ウィンドウの代わりにルートビューの背景を設定するのはどうですか? – JRaymond

答えて

0

JRaymondが私の元の投稿にコメントしたので、ルートビューの背景を設定することでこの問題が解決されました。

0

透明な背景を設定した後、ルートビューをinvalidateにするとよいでしょう。

関連する問題