首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AnimationDrawable的问题

AnimationDrawable的问题
EN

Stack Overflow用户
提问于 2013-03-26 22:45:40
回答 1查看 1.7K关注 0票数 0

我对AnimationDrawable有一个问题。我希望停止frameAnimation后显示的背景与启动frameAnimation之前显示的背景相同。不幸的是,它不是,因为当frameAnimation停止时,背景图像被设置为frameAnimation显示的最后一个ImageView。

有没有办法解决这个问题?

代码语言:javascript
复制
ImageView view;

gridview.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            view=(ImageView)v;
            frameAnimation = (AnimationDrawable) v.getBackground();
            frameAnimation.start();
            myDataThread=new Thread(new DataThread());
            myDataThread.start();

        }
    });

public class DataThread implements Runnable {

    public void run() {
    //do smth
    view.stop();
    view.setBackgroundResource(R.drawable.connectbutton);
    }
}
EN

回答 1

Stack Overflow用户

发布于 2013-03-26 23:33:12

代码语言:javascript
复制
gridview.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
        view=(ImageView)v;
        view.setBackgroundResource(R.drawable.your_frame_animation_id);
        AnimationDrawable frameAnimation = (AnimationDrawable) view.getBackground();
        frameAnimation.start();

        view.post(new Runnable() {

            @Override
            public void run() {

                if(frameAnimation.getCurrent() != frameAnimation.getFrame(frameAnimation.getNumberOfFrames() - 1))
                {
                    view.post(this);
                }else
                {
                    view.removeCallbacks(this);
                    view.setBackgroundResource(R.id.some_image_resource);
                }

            }
        });
    }
}); 

像这样更改setOnItemClickListener,默认情况下,帧动画将是循环的。此外,您可能希望在为GridView设置的Adapter调用getView方法时重置背景。对于动画侦听器,您可以执行一些操作,如获取总帧数,并将其与单个帧的持续时间相乘。或者这样做

view.post()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15639978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档