2013-03-11 36 views
6

ButtonsTextViewsを持つLinearLayoutがあります。私は、赤から白、赤などのように、私のバックグラウンドを一定の間隔で点滅させたい。今、私はこのコードを試していますが、それは私にnullポインタの例外を与えます。点滅する背景

LinearLayout ll = (LinearLayout) findViewById(R.layout.activity_main); 
Animation anim = new AlphaAnimation(0.0f, 1.0f); 
anim.setDuration(50); 
anim.setStartOffset(20); 
anim.setRepeatMode(Animation.REVERSE); 
anim.setRepeatCount(Animation.INFINITE); 
ll.startAnimation(anim); // shows null pointer exception at this line 

私は間違っていますか?

+0

レイアウトIDを使用している場合は、logcatを添付してください。 –

答えて

15

ViewここではfindViewById(R.layout.activity_main)を間違って指定しました。また、右super.onCreate

EDITsetContentView(R.layout.activity_main)を呼び出していることを確認してください

findViewById(R.id.your_view_id); 

ここでは、任意の持つ唯一の背景色を変更することを可能にするコードがあるそれはのようなものでなければなりませんあなたが望む色。 AnimationDrawable.start() doesn't work if called from Activity.onCreateのように見えるので、ここでHandler.postDelayedを使用しなければなりません。

final LinearLayout layout = (LinearLayout) findViewById(R.id.layout); 
final AnimationDrawable drawable = new AnimationDrawable(); 
final Handler handler = new Handler(); 

drawable.addFrame(new ColorDrawable(Color.RED), 400); 
drawable.addFrame(new ColorDrawable(Color.GREEN), 400); 
drawable.setOneShot(false); 

layout.setBackgroundDrawable(drawable); 
handler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     drawable.start(); 
    } 
}, 100); 
+0

ありがとう:)作品は今...アニメーションに色を設定することができますか?また、ボタンのn個のテキストビューが点滅せず、背景部分だけが機能するのでしょうか? – newbee

+0

@newtoandroid、私の更新された答えを確認してください –

+0

私はこれを使用すると、単に赤に背景色を設定します。アニメーションはありません。また、 'layout.setBackground'は型の線形レイアウトでは定義されていません。 eclipseは 'setBackgroundColor()'、 'setBackgroundDrawable()'と 'setBackgroundResource()'の3つの修正を提供します。 – newbee

4

この

LinearLayout ll = (LinearLayout) findViewById(R.id.activity_main); 
Animation anim = new AlphaAnimation(0.0f, 1.0f); 
anim.setDuration(50); 
anim.setStartOffset(20); 
anim.setRepeatMode(Animation.REVERSE); 
anim.setRepeatCount(Animation.INFINITE); 
ll.startAnimation(anim); 

を試してみて、activity_mainがあなたのXMLファイル名は

その後、
setContentView(R.layout.activity_main); 

であり、ここで

LinearLayout ll = (LinearLayout) findViewById(R.id.linear_layout_id); 
関連する問題