Code Bye

Android帧动画

start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                iv.setImageResource(R.drawable.anim);
                AnimationDrawable drawable = (AnimationDrawable) iv.getDrawable();
                drawable.start();
            }
        });
        stop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AnimationDrawable drawable = (AnimationDrawable) iv.getDrawable();
                drawable.stop();
            }
        });

本人设置了两个按钮
开始按钮,让帧动画开始执行,
停止按钮,帧动画会停止,显示当前跳到的图片,
本人想问有没有办法可以获取到停止时显示的图片?

解决方案

40

可以的,本人做了个小Demo,关键方法是
drawable.getCurrent()

,获取当前显示的帧。

public class MainActivity extends AppCompatActivity {
    @BindView(R.id.start_btn)
    Button startBtn;
    @BindView(R.id.stop_btn)
    Button stopBtn;
    @BindView(R.id.anim_image)
    ImageView animImage; //进行帧动画的ImageView
    @BindView(R.id.pick_image)
    ImageView pickImage; //以动画停止的那一帧作为内容
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
    }
    @OnClick({R.id.start_btn, R.id.stop_btn})
    public void onClick(View view) {
        AnimationDrawable drawable;
        switch (view.getId()) {
            case R.id.start_btn:
                animImage.setImageResource(R.drawable.loading_anim);
                drawable = (AnimationDrawable) animImage.getDrawable();
                drawable.start();
                break;
            case R.id.stop_btn:
                drawable = (AnimationDrawable) animImage.getDrawable();
                drawable.stop();
                //关键:drawable.getCurrent()
                pickImage.setImageDrawable(drawable.getCurrent());
                break;
        }
    }
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Android帧动画