异步加载图片--狸菇凉_
来源:互联网 发布:ge 段小缨 知乎 编辑:程序博客网 时间:2024/06/08 12:30
ImageLoadAsyncTask类
public class ImageLoadAsyncTask extends AsyncTask<String,Void,Bitmap>{
/**
* 定义一个图片的接口回调
*/
public interface ImageCallBack{
void callBitmap(Bitmap bitmap);
}
//定义变量记住调用者所传递进来的回调监听对象
private ImageCallBack imageCallBack;
//构造方法
public ImageLoadAsyncTask(ImageCallBack imageCallBack){
this.imageCallBack = imageCallBack;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
if(bitmap != null){
//设置图片 回调回去
imageCallBack.callBitmap(bitmap);
}
}
@Override
protected Bitmap doInBackground(String... params) {
try {
String path = params[0];
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5*1000);
connection.setReadTimeout(5*1000);
//服务器响应
int code = connection.getResponseCode();
if(code == HttpURLConnection.HTTP_OK){//判断服务器是否连接成功并相应
//图片流
InputStream is = connection.getInputStream();
//将图片流转化成Bitmap位图,返回
return BitmapFactory.decodeStream(is);
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
Mainactivity类
private ImageView ivIcon;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ivIcon = (ImageView) findViewById(R.id.ivIcon);
}
public void btnLoadImage(View v){
loadImg("http://20.1.3.46:8080/tomcat.png");
}
/**
* 加载图片
* @param url 图片地址
*/
private void loadImg(String url){
ImageLoadAsyncTask imageLoadAsyncTask = new ImageLoadAsyncTask(new ImageLoadAsyncTask.ImageCallBack() {
@Override
public void callBitmap(Bitmap bitmap) {
if(bitmap != null){
ivIcon.setImageBitmap(bitmap);
}
}
});
//执行图片请求
imageLoadAsyncTask.execute(url);
}
这就可以加载出来特别简单的图片了。- 异步加载图片--狸菇凉_
- [Cocoa]_[初级]_[使用异步线程加载图片文件实现进度条的更新]
- 异步加载图片
- 异步加载图片
- ajax异步加载图片
- android异步加载图片
- 异步图片加载实例
- android 异步加载图片
- 图片异步加载
- list 异步加载图片
- 异步加载本地 图片
- UITableView 异步加载图片
- android异步加载图片
- inputstream 异步加载图片
- iPhone 异步加载图片
- android异步加载图片
- 图片的异步加载
- 异步图片加载控件
- ACM-二分贪心B-02
- okhttpclient下载功能
- LeetCode刷题(C++)——Longest Common Prefix(Easy)
- 使用pykafka操作kafka踩的一个坑
- ViewPager小圆点
- 异步加载图片--狸菇凉_
- linux 常用端口
- Python:成员资格运算符(in)
- 基础培训教程
- POJ2253 Frogger
- 关于springMVC和传统servlet框架从jsp页面向后台请求url问题
- HTTP2与HTTP1.1的区别
- C++作业5
- RPG Map Editor 基本刷地图篇