自定义imageview 设置url图片资源

原理:定义一个类集成ImageView ,然后开启一个线程去获取网络资源,然后用handler更新UI。

public class MyImageView extends ImageView {



protected static final int SUCCESS = 0;
protected static final int ERROR = 1;


public MySmartImageView(Context context) {
super(context);
}

private Handler mHandler = new Handler(){

public void handleMessage(Message msg) {

switch (msg.what) {
case SUCCESS:
Bitmap bitmap = (Bitmap) msg.obj;
// siv.setI(bitmap);
break;
case ERROR:

// Toast.makeText(context, text, duration).sho
break;


default:
break;
}

};
};
    //获取网络资源。
public void setImageUrl(final String ul){

new Thread(){

public void run() {

try {
URL url = new URL(ul);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");

int code = conn.getResponseCode();

if(code==200){


InputStream in = conn.getInputStream();

Bitmap bitmap = BitmapFactory.decodeStream(in);
//发送消息,通知handler更细UI
Message msg = Message.obtain();
msg.what=SUCCESS;
msg.obj=bitmap;
mHandler.sendMessage(msg);
}

} catch (Exception e) {
e.printStackTrace();

Message msg = Message.obtain();
msg.what=ERROR;
mHandler.sendMessage(msg);
}

};
}.start();

}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值