package com.lilin.async;
import cn.riddles.activity.R;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class Main extends Activity {
public ListView listView;
public static String[] strings = { "王力宏", "吴尊", "何润东" };
public static String[] paths = {
"http://list.image.baidu.com/t/image_category/galleryimg/menstar/hk/wang_li_hong.jpg",
"http://list.image.baidu.com/t/image_category/galleryimg/menstar/hk/wu_zun.jpg",
"http://list.image.baidu.com/t/image_category/galleryimg/menstar/hk/he_run_dong.jpg" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView) this.findViewById(R.id.test_lv);
listView.setAdapter(new MyAdapter(this));
}
}
class MyAdapter extends BaseAdapter {
private Context context;
public MyAdapter(Context context) {
this.context = context;
}
public void setcontext(Context context) {
this.context = context;
}
public int getCount() {
return Main.paths.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
convertView = LayoutInflater.from(context).inflate(R.layout.listview,
null);
ImageView imageView = (ImageView) convertView.findViewById(R.id.image);
TextView songer_tv = (TextView) convertView.findViewById(R.id.songer);
imageView.setTag(Main.paths[position]);
songer_tv.setText(Main.strings[position]);
new ImageTask().execute(imageView);
return convertView;
}
}
package com.lilin.async;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.webkit.URLUtil;
import android.widget.ImageView;
/**
* 通过AsyncTask实现图片的异步加载
*
* @author lilin
* @date 2011-9-5 上午08:45:12
* @ClassName: ImageTask
* @Description: 特点:任务不在主线程中执行,而回调方法在主线程中执行,比Handler更轻量级些,适用于简单的异步处理
*/
public class ImageTask extends AsyncTask<ImageView, Void, Bitmap> {
private ImageView imageView;
protected Bitmap doInBackground(ImageView... views) {
// 后台线程执行,完成任务的主要操作
Bitmap bitmap = null;
ImageView imageView = views[0];
if (imageView.getTag() != null) {
try {
if (URLUtil.isHttpUrl(imageView.getTag().toString())) {// 首先判断是不是url
System.out.println(imageView.getTag().toString());
URL url = new URL(imageView.getTag().toString());
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream stream = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(stream);// 将stream流转化成bitmap
stream.close();
} else {
bitmap = BitmapFactory.decodeFile(imageView.getTag()
.toString());
}
} catch (Exception e) {
return null;
}
}
this.imageView = imageView;
return bitmap;
}
protected void onPostExecute(Bitmap bitmap) {
// 主线程中执行
if (bitmap != null) {
this.imageView.setImageBitmap(bitmap);
this.imageView = null;
}
}
}
分享到:
相关推荐
Android AsyncTask用法和异步加载图片通过AsyncTask 从网络上异步加载一张图片
Android 演示异步加载图片的实现 附源代码,这里主要是演示ListView的异步加载图片功能,异步加载一个view时,如果view里面有EditText,EditText在每次加载view都会触发焦点,这时候异步就会出错。可能我这样说不太...
这是博文《异步加载图片(一)》对应的源码,这段代码仅实现了异步加载,对于滑动时暂停,停划时加载的问题会在《异步加载图片(二)》中讲解,这篇文章的地址:...
如何异步加载图片,如果图片多了,这个脚本的效果还不错..
NULL 博文链接:https://laihuaiqing.iteye.com/blog/2169775
简洁 明确 listview异步加载图片
JS异步加载图片
演化理解 Android 异步加载图片
这是一个Android异步图片加载的例子
iphone UITableView异步加载图片
图片异步加载,照片墙,异步加载listview中的图片 代码3 说明:http://blog.csdn.net/wjyyxzzjnws/article/details/10041125
使用Android Studio 练习RecyclerView 异步加载图片,解决图片乱序问题。
Android实现ListView异步加载图片
实现异步加载图片。并点击图片实现缩放旋转功能,可以左右滑动换下张上张图片。
以AJAX方式加载图片=异步加载图片,先显示个图片的占位图片 此技术常见于漫画网站.zip
Android 图片异步加载 加载网络图片
异步加载图片,之前的版本发现还是有问题,这次做了修改.上次忘记初始化,犯一低级错误。不好意思
ListView的异步加载图片并缓存,可以实现异步加载数据,异步加载图片,缓存图片,并且实现退出删除图片缓存
iPhone上实现异步加载图片并缓存代码,供大家一起共同分享学习。