2011-12-07 1 views
0

私のアプリで私はすべてを動的に取得する必要があります。私はdrawableアニメーションを動的に取得しようとしています。下のコードを試しましたが、output.pleaseを取得していないのは、私が間違いを犯した場所を助けています。Drawble animation動的に

 RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
     img.setLayoutParams(lp); 
     relativeLayout.addView(img); 
     strtbtn= new Button(this); 
     strtbtn.setId(1); 
     RelativeLayout.LayoutParams lp1=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
     strtbtn.setLayoutParams(lp1); 
     relativeLayout.addView(stpbtn); 
     stpbtn=new Button(this); 
     stpbtn.setId(2); 
     RelativeLayout.LayoutParams lp2=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
     stpbtn.setLayoutParams(lp2); 
     relativeLayout.addView(stpbtn); 
     setContentView(relativeLayout); 
     BitmapDrawable frame0 = (BitmapDrawable)getResources().getDrawable(R.drawable.f0); 
     BitmapDrawable frame1 = (BitmapDrawable)getResources().getDrawable(R.drawable.f1); 
     BitmapDrawable frame2 = (BitmapDrawable)getResources().getDrawable(R.drawable.f2); 
     BitmapDrawable frame3 = (BitmapDrawable)getResources().getDrawable(R.drawable.f3); 
     BitmapDrawable frame4 = (BitmapDrawable)getResources().getDrawable(R.drawable.f4); 
     BitmapDrawable frame5 = (BitmapDrawable)getResources().getDrawable(R.drawable.f5); 

     int reasonableDuration = 750; 
     mAnimation = new AnimationDrawable(); 

     mAnimation.addFrame(frame0, reasonableDuration); 
     mAnimation.addFrame(frame1, reasonableDuration); 
     mAnimation.addFrame(frame2, reasonableDuration); 
     mAnimation.addFrame(frame3, reasonableDuration); 
     mAnimation.addFrame(frame4, reasonableDuration); 
     mAnimation.addFrame(frame5, reasonableDuration); 

     img.setBackgroundDrawable(mAnimation); 
     strtbtn = (Button) findViewById(1); 
     strtbtn.setOnClickListener(this); 
     stpbtn = (Button) findViewById(2); 
     stpbtn.setOnClickListener(this); 
    } 

    public void onClick(View v) { 

     if(v.getId()== 3) { 
      mAnimation.start(); 
      mAnimation.setOneShot(false); 
     } 
     else 
     mAnimation.stop(); 
    } 
} 
+0

'' findViewById(1)とは何ですか?実際のIDは数字ではなくボタンに入力する必要があります(R.id ...で始まる識別子)。また、 'v.getId()== 3'は何も意味しません。再び 'v.getId()'と 'v.getId()== R.id.btn1'のようなボタンの実際のIDを比較してください。 – Dalmas

答えて

0

ここで私はそれを試してみて何が起こったのか教えてください。

AnimationDrawable Tranninganimation1; 

Tranninganimation1 = new AnimationDrawable(); 
     new playninzi().execute(); 

     Tranninganimation1.setOneShot(false); 
     ImageView img = (ImageView) findViewById(R.id.girl_anim); 
     img.setBackgroundDrawable(Tranninganimation1); 
     img.post(new Starter()); 

AsyncTask ::

private class playninzi extends AsyncTask<Void, Void, Void> { 

     protected void onPreExecute() { 

      try { 

       // Drawable frame = new BitmapDrawable(R.drawable.girl10001); 

       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 

       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
       Tranninganimation1.addFrame(
         getResources() 
           .getDrawable(R.drawable.boy_listening0030), 50); 
      } catch (Exception e) { 

      } 

     } 

     @Override 
     protected Void doInBackground(Void... arg0) { 
      // TODO Auto-generated method stub 
      return null; 
     } 
    } 

    class Starter implements Runnable { 

     public void run() { 
      Tranninganimation1.start(); 

     } 

    }