这几天因为要用到Listview以及加载图片,从网上查了下资料,写了个demo,但是从网络下载的图片没有缓存到本地,有待修正
下面贴上代码,供大家学习
IMageTaskUtil.java多任务处理图片的加载
package com.loulijun.utils;
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.widget.ImageView;
public class ImageTaskUtil extends AsyncTask<String, Void, Bitmap> {
private ImageView iv;
public ImageTaskUtil(ImageView iv) {
this.iv = iv;
}
@Override
protected Bitmap doInBackground(String... params) {
// TODO Auto-generated method stub
String imgUrl = params[0];
try {
URL url = new URL(imgUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStream in = conn.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(in);
if (bitmap != null) {
return bitmap;
}
} catch (Exception e) {
// TODO: handle exception
}
return null;
}
@Override
protected void onPostExecute(Bitmap result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if (result != null) {
iv.setImageBitmap(result);
}
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
}
}
commonebean.java Listview中单个item的model
package com.loulijun.bean;
public class CommondBean implements java.lang.Comparable {
private String UserImg;
private String UserName;
private String UserDetail;
private String Good;
private String Poor;
private String Hot;
private String Share;
public CommondBean(String userImg, String userName, String userDetail,
String good, String poor, String hot, String share) {
UserImg = userImg;
UserName = userName;
UserDetail = userDetail;
Good = good;
Poor = poor;
Hot = hot;
Share = share;
}
public String getUserImg() {
return UserImg;
}
public void setUserImg(String userImg) {
UserImg = userImg;
}
public String getUserName() {
return UserName;
}
public void setUserName(String userName) {
UserName = userName;
}
public String getUserDetail() {
return UserDetail;
}
public void setUserDetail(String userDetail) {
UserDetail = userDetail;
}
public String getGood() {
return Good;
}
public void setGood(String good) {
Good = good;
}
public String getPoor() {
return Poor;
}
public void setPoor(String poor) {
Poor = poor;
}
public String getHot() {
return Hot;
}
public void setHot(String hot) {
Hot = hot;
}
public String getShare() {
return Share;
}
public void setShare(String share) {
Share = share;
}
@Override
public int compareTo(Object another) {
// TODO Auto-generated method stub
return 0;
}
}
MyAdapter.java 自定义Adapter容器
package com.loulijun.adapter;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.loulijun.bean.CommondBean;
import com.loulijun.logindemo.R;
import com.loulijun.utils.ImageTaskUtil;
public class MyAdapter extends BaseAdapter {
private Context context;
private List<CommondBean> commondBeans;
public MyAdapter(Context context, List<CommondBean> commondBeans) {
this.context = context;
this.commondBeans = commondBeans;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return commondBeans.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return commondBeans.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View view = convertView;
ViewHolder holder = null;
if (view == null) {
view = LayoutInflater.from(context).inflate(
R.layout.item_listview_commond, null);
holder = new ViewHolder();
view.setTag(holder);
holder.user_img = (ImageView) view.findViewById(R.id.userimg);
holder.user_detail = (TextView) view.findViewById(R.id.detail);
holder.user_name = (TextView) view.findViewById(R.id.name);
holder.user_good = (Button) view.findViewById(R.id.good);
holder.user_good.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(context, "32个赞!", Toast.LENGTH_SHORT).show();
}
});
holder.user_poor = (Button) view.findViewById(R.id.poor);
holder.user_poor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(context, "贬低一个!", Toast.LENGTH_SHORT).show();
}
});
holder.user_hot = (Button) view.findViewById(R.id.hot);
holder.user_hot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(context, "更加火爆!", Toast.LENGTH_SHORT).show();
}
});
holder.user_share = (Button) view.findViewById(R.id.share);
holder.user_share.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(context, "分享成功!", Toast.LENGTH_SHORT).show();
}
});
holder.good = (TextView) view.findViewById(R.id.goodtext);
holder.poor = (TextView) view.findViewById(R.id.poortext);
holder.hot = (TextView) view.findViewById(R.id.hottext);
holder.share = (TextView) view.findViewById(R.id.sharetext);
} else {
holder = (ViewHolder) convertView.getTag();
}
ImageTaskUtil imageTask = new ImageTaskUtil(holder.user_img);
imageTask.execute(commondBeans.get(position).getUserImg());
holder.user_detail.setText(commondBeans.get(position).getUserDetail());
holder.user_name.setText(commondBeans.get(position).getUserName());
holder.good.setText(commondBeans.get(position).getGood());
holder.poor.setText(commondBeans.get(position).getPoor());
holder.hot.setText(commondBeans.get(position).getHot());
holder.share.setText(commondBeans.get(position).getShare());
return view;
}
static class ViewHolder {
ImageView user_img;
TextView user_name;
TextView user_detail;
TextView good;
TextView poor;
TextView hot;
TextView share;
Button user_good;
Button user_poor;
Button user_hot;
Button user_share;
}
}
MainActivity.java 主activity
package com.loulijun.activity;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.loulijun.adapter.MyAdapter;
import com.loulijun.bean.CommondBean;
import com.loulijun.logindemo.R;
public class MainActivity extends LoginDemoActivity implements OnClickListener {
private TextView home, name, detail;
private ImageView wangluotupian, userimg;
String url = "http://s16.sinaimg.cn/orignal/89429f6dhb99b4903ebcf&690";
private ListView personal_listview;
private MyAdapter myAdapter;
private List<CommondBean> commondBeans;
private List<Map<String, Object>> commondList = new ArrayList<Map<String, Object>>();
private String m_name, m_detail, m_good, m_poor, m_hot, m_share;
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
initView();
initData();
}
private void initView() {
this.home = (TextView) MainActivity.this.findViewById(R.id.home);
this.name = (TextView) MainActivity.this.findViewById(R.id.home);
this.detail = (TextView) MainActivity.this.findViewById(R.id.detail);
this.wangluotupian = (ImageView) this.findViewById(R.id.wangluotupian);
this.userimg = (ImageView) this.findViewById(R.id.userimg);
}
private void initData() {
this.home.setText("用户id:" + userBean.getId() + userBean.getName());
Bitmap bitmap = getHttpBitmap(url);
this.wangluotupian.setImageBitmap(bitmap);
personal_listview = (ListView) MainActivity.this
.findViewById(R.id.personal_listview);
commondBeans = new ArrayList<CommondBean>();
CommondBean[] commondArray = new CommondBean[] {
new CommondBean(
"http://s16.sinaimg.cn/orignal/89429f6dhb99b4903ebcf&690",
"笑谈花落", "一句话说过你看过的星爷的电影,我先来,人要是没有理想和咸鱼有什么区别", "1", "2",
"3", "4"),
new CommondBean("http://img3.douban.com/spic/s27078194.jpg", "笑谈花落",
"一句话说过你看过的星爷的电影,我先来,人要是没有理想和咸鱼有什么区别", "5", "6", "7",
"8"),
new CommondBean("http://img5.douban.com/spic/s3595798.jpg", "笑谈花落",
"一句话说过你看过的星爷的电影,我先来,人要是没有理想和咸鱼有什么区别", "9", "1", "2",
"3"),
new CommondBean("http://img5.douban.com/spic/s2650727.jpg", "笑谈花落",
"一句话说过你看过的星爷的电影,我先来,人要是没有理想和咸鱼有什么区别", "4", "5", "6",
"7"),
new CommondBean("http://img3.douban.com/spic/s1400630.jpg", "笑谈花落",
"一句话说过你看过的星爷的电影,我先来,人要是没有理想和咸鱼有什么区别", "8", "9", "1",
"2") };
for (int i = 0; i < commondArray.length; i++) {
CommondBean commondBeans = new CommondBean(null, null, null,
i + "", i + "", i + "", i + "");
String murl = commondArray[i].getUserImg();
String mname = commondArray[i].getUserName();
String mdetail = commondArray[i].getUserDetail();
String mgood = commondArray[i].getGood();
String mpoor = commondArray[i].getPoor();
String mhot = commondArray[i].getHot();
String mshare = commondArray[i].getShare();
Bitmap mbitmap = getHttpBitmap(murl);
Map<String, Object> map = new HashMap<String, Object>();
map.put("m_url", mbitmap);
map.put("m_name", mname);
map.put("m_detail", mdetail);
map.put("m_good", mgood);
map.put("m_poor", mpoor);
map.put("m_hot", mhot);
map.put("m_share", mshare);
commondList.add(map);
}
Arrays.sort(commondArray);
commondBeans = Arrays.asList(commondArray);
myAdapter = new MyAdapter(MainActivity.this, commondBeans);
personal_listview.setAdapter(myAdapter);
}
private void Onclick(View v) {
switch (v.getId()) {
case R.id.good:
break;
case R.id.poor:
break;
case R.id.hot:
break;
case R.id.share:
break;
default:
break;
}
}
}