可绘制的动画动态

时间:2011-12-07 10:50:20

标签: android android-layout

在我的应用中,我需要动态获取所有内容。所以我试图动态获取可绘制的动画。我尝试了下面的代码,但没有得到任何输出。请帮助我在哪里做错了。

        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();
    }
}

1 个答案:

答案 0 :(得分: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();

        }

    }