2012-02-15 48 views
1

在我的活動中,我正在玩動畫..當我第一次開始活動時,所有的動畫都在玩給定的時間。但它是加快,當我重複每一個動畫更多的時間..這是我的活動....並在我的代碼我沒有提供所有對象和變量聲明,以減少代碼...爲什麼第一次運行後動畫加速?

公共類練習擴展活動{0}當第一次創建活動時調用。 */

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.exercise); 

    exercise_Layout=(RelativeLayout)findViewById(R.id.exerciselayout); 

    exercise_Layout.setBackgroundResource(R.drawable.exercise_bg); 

    if(getIntent().getStringExtra("TIPS").equals("Fun")) 
    { 
    count=0; 
    System.out.println("This is Fun"); 
    } 
    else if(getIntent().getStringExtra("TIPS").equals("Tips")) 
    { 
    count=1; 

    } 
gym.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
          exercise_Layout.setBackgroundResource(R.drawable.exercise_bg); 
      gym_View.setBackgroundResource(R.anim.gymanim); 
      gym_Animation=(AnimationDrawable)gym_View.getBackground(); 
      gym_Animation.start(); 
      //playing sounds 
      mp.reset(); 
      mp=MediaPlayer.create(getApplicationContext(),R.raw.gym); 
      try { 
       mp.prepare(); 
      } catch (IllegalStateException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      mp.start(); 
      mp.setLooping(true);  

     } 
    }); 

    run.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
          exercise_Layout.setBackgroundResource(R.drawable.exercise_bg); 
      run_View.setBackgroundResource(R.anim.runanim); 
      run_Animation=(AnimationDrawable)run_View.getBackground(); 
      run_Animation.start(); 
      //playing sounds 
      mp.reset(); 
      mp=MediaPlayer.create(getApplicationContext(),R.raw.thread_music); 
      try { 
       mp.prepare(); 
      } catch (IllegalStateException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      mp.start(); 
      mp.setLooping(true);  

     } 
    }); 

    jogg.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      jogg_View.setBackgroundResource(R.anim.jogroadanim); 
      jogg_Animation=(AnimationDrawable)jogg_View.getBackground(); 
      jogg_Animation.start(); 
      //playing sounds 
      mp.reset(); 
      mp=MediaPlayer.create(getApplicationContext(),R.raw.jogging); 
      try { 
       mp.prepare(); 
      } catch (IllegalStateException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      mp.start(); 
      mp.setLooping(true);  

     } 
    }); 

    swim.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      exercise_Layout.setBackgroundResource(R.drawable.swimingpool); 
      swim_View.setVisibility(View.VISIBLE); 

      swim_View.setBackgroundResource(R.anim.swimanim); 
      swim_Animation=(AnimationDrawable)swim_View.getBackground(); 
      swim_Animation.start(); 
      //playing sounds 
      mp.reset(); 
      mp=MediaPlayer.create(getApplicationContext(),R.raw.swimming); 
      try { 
       mp.prepare(); 
      } catch (IllegalStateException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      mp.start(); 
      mp.setLooping(true);  

     } 
    }); 
} 

回答

0

我不確定,但如果你使用CountDownTimers,你按下它多次,你開始他們兩次或更多次。也許它與你的動畫相同的問題。例如,我在那裏看到swim_Animation.start(); ..在重新激活它之前嘗試swim_Animation.stop();。我希望我沒有誤解你的解釋..

相關問題