package com.example.myapplication;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.widget.ImageView;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class ImageDownTask extends AsyncTask<String,Void, Bitmap> {
private ImageView img;
public ImageDownTask(ImageView img) {
//通过构造方法进行依赖注入
this.img = img;
}
//后台处理逻辑(下载图片的功能在此方法中实现)
@Override
protected Bitmap doInBackground(String... strings) {
//形参接受输入的参数(下载图片的地址)
Bitmap bmp=null;
try {
URL url=new URL(strings[0]);
//通过URL是客户端与服务器端建立连接
HttpURLConnection coon=(HttpURLConnection) url.openConnection();
//I/O流
InputStream is=coon.getInputStream();
//缓冲流
BufferedInputStream bis=new BufferedInputStream(is);
//将缓冲流中数据封装成图片
bmp = BitmapFactory.decodeStream(bis);
//下载完成后,关闭I/O管道
bis.close();
is.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return bmp;
}
//更新
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
img.setImageBitmap(bitmap);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
AsyncTask异步类下载图片案例

共35个文件
xml:10个
webp:10个
java:4个

需积分: 12 25 浏览量
2022-09-28
10:49:04
上传
评论
收藏 106KB ZIP 举报
Android 的 UI 线程主要负责处理用户的按键事件、触屏事件等。因此其他阻塞 UI 线程的操作不应该在主线程中操作。为了避免 UI 线程失去响应的问题,Android 程序采用将耗时操作放在新线程中完成的方式,但是新线程可能需要动态更新 UI 组件,比如获取网络资源操作放在新线程中完成。但由于新线程不允许直接更新山 I 组件,为了解决这个问题,Android 提供了异步任务 (AsyncTask) 的方式实现异步线程的操作。
资源详情
资源评论
资源推荐
收起资源包目录





































































共 35 条
- 1


















ECHK1NG
- 粉丝: 398
- 资源: 5

上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论0