package com.lian.listviewtag;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import com.lian.listviewtag.Wei.Lists;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
Context context;
ArrayList<Lists> list;
private String uri;
private View view;
Handler handler=new Handler(){
public void handleMessage(android.os.Message msg) {
if(msg.what==1){
Bitmap bit=(Bitmap) msg.obj;
Bundle data = msg.getData();
//当不等于空时在设置, 预防空指针
if(bit!=null&imageview!=null){
imageview.setImageBitmap(bit);
}
}
};
};
public MyBase(Context context, ArrayList<Lists> list) {
super();
this.context = context;
this.list = list;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
view = View.inflate(context, R.layout.list_view, null);
ImageView image=(ImageView) view.findViewById(R.id.imageView);
TextView title=(TextView) view.findViewById(R.id.title);
System.out.println("==="+list.get(position).title);
title.setText(list.get(position).title);
uri = list.get(position).firstImg;
image.setTag(uri);
new Thread(){
public void run() {
jieXi(uri);
};
}.start();
return view;
}
//解析
public void jieXi(String uri){
//设置统一资源接口
try {
URL url = new URL(uri);
//打开链接
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//设置连接超时
connection.setConnectTimeout(5000);
//设置读取超时
connection.setReadTimeout(5000);
//获取响应码
int responseCode = connection.getResponseCode();
if(responseCode==200){
//获取输入流
InputStream inputStream = connection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
Message msg=Message.obtain();
msg.what=1;
//将image控件的tag绑到bundle身上
Bundle bundle=new Bundle();
bundle.putString("tag", uri);
msg.setData(bundle);
msg.obj=bitmap;
handler.sendMessage(msg);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import com.lian.listviewtag.Wei.Lists;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
//适配器中的配置
Context context;
ArrayList<Lists> list;
private String uri;
private View view;
Handler handler=new Handler(){
public void handleMessage(android.os.Message msg) {
if(msg.what==1){
Bitmap bit=(Bitmap) msg.obj;
Bundle data = msg.getData();
String uri = data.getString("tag");
//在当前布局中获取tag
//当不等于空时在设置, 预防空指针
if(bit!=null&imageview!=null){
imageview.setImageBitmap(bit);
}
}
};
};
public MyBase(Context context, ArrayList<Lists> list) {
super();
this.context = context;
this.list = list;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
view = View.inflate(context, R.layout.list_view, null);
ImageView image=(ImageView) view.findViewById(R.id.imageView);
TextView title=(TextView) view.findViewById(R.id.title);
System.out.println("==="+list.get(position).title);
title.setText(list.get(position).title);
uri = list.get(position).firstImg;
image.setTag(uri);
new Thread(){
public void run() {
jieXi(uri);
};
}.start();
return view;
}
//解析
public void jieXi(String uri){
//设置统一资源接口
try {
URL url = new URL(uri);
//打开链接
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//设置连接超时
connection.setConnectTimeout(5000);
//设置读取超时
connection.setReadTimeout(5000);
//获取响应码
int responseCode = connection.getResponseCode();
if(responseCode==200){
//获取输入流
InputStream inputStream = connection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
Message msg=Message.obtain();
msg.what=1;
//将image控件的tag绑到bundle身上
Bundle bundle=new Bundle();
bundle.putString("tag", uri);
msg.setData(bundle);
msg.obj=bitmap;
handler.sendMessage(msg);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}