在我的应用程序中,我有一个列表视图..每一行都包含一个图像和一个相对布局的文本视图..一切都完成了..但是列表视图的滚动不如原生“联系人列表”那么流畅。我认为问题出在 getview (),y 因为在这种方法中我有一个“HTTP”调用和位图图像加载..有没有办法做到这一点..请帮助我..提前谢谢..
我的 Getview 方法:
public View getView(int position, View convertView, ViewGroup parent)
{
// TODO Auto-generated method stub
Bitmap bitmap = DownloadImage(
kickerimage[position] );
// View listView = convertView;
ViewHolder holder;
if (convertView == null)
{
//this should only ever run if you do not get a view back
LayoutInflater inflater = (LayoutInflater) contxt
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.homelistrow, null);
holder = new ViewHolder();
holder.image = (ImageView) convertView
.findViewById(R.id.icon);
holder.image.setImageBitmap(bitmap);
holder.text = (TextView) convertView
.findViewById(R.id.name_label);
holder.text.setText(itemsarray[position]);
}
return convertView ;
}
private Bitmap DownloadImage(String URL)
{
// System.out.println("image inside="+URL);
Bitmap bitmap = null;
InputStream in = null;
try {
in = OpenHttpConnection(URL);
bitmap = BitmapFactory.decodeStream(in);
in.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// System.out.println("image last");
return bitmap;
}
private InputStream OpenHttpConnection(String urlString)
throws IOException
{
InputStream in = null;
int response = -1;
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
if (!(conn instanceof HttpURLConnection))
throw new IOException("Not an HTTP connection");
try{
HttpURLConnection httpConn = (HttpURLConnection) conn;
httpConn.setAllowUserInteraction(false);
httpConn.setInstanceFollowRedirects(true);
httpConn.setRequestMethod("GET");
httpConn.connect();
response = httpConn.getResponseCode();
if (response == HttpURLConnection.HTTP_OK)
{
in = httpConn.getInputStream();
}
}
catch (Exception ex)
{
throw new IOException("Error connecting");
}
return in;
}