package com.zerofield.netanimation;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;
import java.util.ArrayList;
import java.util.HashMap;
public class MainActivity extends AppCompatActivity {
private ImageView iv_image;
ArrayList<String> strArray=new ArrayList<>();
//HashMap<Integer,ArrayList<Drawable>> mhashMap=new HashMap<>();
ArrayList mArrayList=new ArrayList();
HashMap<Integer,GlideDrawable> mhashmap=new HashMap<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv_image=findViewById(R.id.iv_image);
netAnima();
strArray.add("http://qiniuupload.i-vsun.com/5478cc2cf148276d8abf1d3660232dc1.jpg");
strArray.add("http://qiniuupload.i-vsun.com/2948ca06f97ec48907c5a71dff34fced.jpg");
for (int i=0;i<strArray.size();i++){
final int pos=i;
loadImage(strArray.get(i), pos);
}
}
AnimationDrawable frameAnim;
public void netAnima(){
frameAnim =new AnimationDrawable();
// 设置为循环播放
frameAnim.setOneShot(false);
}
public void loadImage(String url,final int pos ) {
SimpleTarget<GlideDrawable> simpleTarget = new SimpleTarget<GlideDrawable>() {
@Override
public void onResourceReady(GlideDrawable resource, GlideAnimation glideAnimation) {
mhashmap.put(pos,resource);
if(mhashmap.size()==strArray.size()){
for (int i=0;i<strArray.size();i++){
frameAnim.addFrame( mhashmap.get(i),400);
iv_image.setImageDrawable(frameAnim);
frameAnim.start();
}
}
}
};
Glide.with(this)
.load(url)
.into(simpleTarget);
}
public interface TCallBack{
public void BackCall(int pos);
}
}
Android 用网络图片做帧动画
最新推荐文章于 2021-05-25 22:10:54 发布