android 不能播放animation-list动画

经测试,应该是3.0一下的机型在播放animation-lis时,动画没有播放;然后网络搜索,找到一篇文章,讲的非常详细http://www.cnblogs.com/firecode/archive/2012/11/01/2749774.html

里面给出了几种执行动画的方法,我这边就再重复一下:

首先提一点需要注意:

1》ImageView的src与background有什么区别呢?
用src的时候,应是原图显示,不该变图片的大小;用background的时候,按照组件的大小来放大或者缩小图片。

2》代码中使用setBackgroundResource方法设置imageView资源背景,相当于布局文件中的android:background属性,这个属性是view类的属性,必须通过getBackground()方法来获取;而getdrawable()是imageview类的方法,必须通过在代码中setImageResource(int)(对应布局文件的android:src)或setImageDrawable(Drawable drawable)方法设置才可以使用getdrawable()方法;否则程序中代码虽然不会出错,但是运行后会报空指针异常!!!

方法 1 

<ImageView
        android:id="@+id/splash_iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="55dp"
        android:src="@drawable/explosiontext" />

iv = (ImageView) findViewById(R.id.splash_iv);
        anim = (AnimationDrawable) iv.getDrawable();
        iv.post(new Runnable() {
            @Override
            public void run() {
                anim.start();
            }
        });

方法 2

// @Override
    // public void onWindowFocusChanged(boolean hasFocus) {
    // anim.start();
    // super.onWindowFocusChanged(hasFocus);
    // }

方法 3 

iv = (ImageView) findViewById(R.id.splash_iv);
        anim = (AnimationDrawable) iv.getDrawable();
        iv.getViewTreeObserver().addOnPreDrawListener(preDrawListener);

OnPreDrawListener preDrawListener = new OnPreDrawListener() {
        @Override
        public boolean onPreDraw() {
            anim.start();
            return true; // 必须要有这个true返回
        }
    };

方法 4 

imageView.setBackgroundResource(R.anim.xxxxx);
AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();
RunAnim runAnim=new RunAnim();
runAnim.execute("");

class RunAnim extends AsyncTask<String, String, String> {
        @Override
        protected String doInBackground(String... params) {
            if (!animationDrawable.isRunning()) {
                animationDrawable.stop();
                animationDrawable.start();
            }
            return "";
        }
}

 

posted on 2013-10-18 10:05  刘世辉  阅读(3458)  评论(0编辑  收藏  举报

导航