您的位置:首页 > 理论基础 > 计算机网络

android加载网络gif图片

2015-12-25 15:29 627 查看
支持gif的imageview,使用github上的开源框架,项目地址https://github.com/koral--/android-gif-drawable

如果gif是网络图片,这个库不支持直接加载一个url,但是提供了一个GifDrawable 类,可以通过文件,输入流等方式创建GifDrawable,

所以可以先下载下来或者获得输入流,通过创建drawable加载。下面例举两种方法:

1、下载到sd卡,再加载

DownloadUtils.java


public class LoadGifUtils {
private onCompltedListener listener;

public void loadGif(String url) {
MyRunnable myRunnable = new MyRunnable(url);
new Thread(myRunnable).start();
}

class MyRunnable implements Runnable {
String url;
MyRunnable(String url) {
this.url = url;
}

@Override
public void run() {
byte[] bt=new byte[1024];
try {
HttpClient client = new HttpClient();
GetMethod get = new GetMethod(url);
client.executeMethod(get);
bt = get.getResponseBody();

sendMsg(1,bt);
} catch (Throwable ex) {
System.out.println(ex.toString());
}
}
}
private void sendMsg(int what, Object mess) {
Message m = handler.obtainMessage();
m.what = what;
m.obj = mess;
m.sendToTarget();
}
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 1: // 开始下载
byte[] bt = (byte[]) msg.obj;
if(listener!=null) {
listener.onComplted(bt);
}
break;
}
super.handleMessage(msg);
}
};

interface onCompltedListener {
void onComplted(byte[] bt);
}

void setListener(onCompltedListener listener){
this.listener=listener;
}
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: