Android 如何使用类似懒散列表概念的db响应来显示图像?

Android 如何使用类似懒散列表概念的db响应来显示图像?,android,lazy-loading,imagesource,Android,Lazy Loading,Imagesource,我是android应用程序的新开发人员。我正在努力显示来自.net db服务的图像。我正在使用SoapObject类与.net web服务通信。当我向db发送获取图像的请求时,它将返回编码字符串。我将这些字符串存储在字符串数组中。在延迟加载概念中,它们将URL存储到他们正在将该数组传递到LazyAdapter类中的字符串数组 public View getView(int position, View convertView, ViewGroup parent) { View vi=

我是android应用程序的新开发人员。我正在努力显示来自.net db服务的图像。我正在使用SoapObject类与.net web服务通信。当我向db发送获取图像的请求时,它将返回编码字符串。我将这些字符串存储在字符串数组中。在延迟加载概念中,它们将URL存储到他们正在将该数组传递到LazyAdapter类中的字符串数组

  public View getView(int position, View convertView, ViewGroup parent) {
    View vi=convertView;


    if(convertView==null)
        vi = inflater.inflate(R.layout.item1, null);

     TextView text=(TextView)vi.findViewById(R.id.txtViewTitle);;
     ImageView image=(ImageView)vi.findViewById(R.id.imgViewLogo);

     text.setText(messages[position]);
     try {
        imageLoader.DisplayImage(data[position], activity, image);

    } catch (Exception e) {

        e.printStackTrace();
    }

    return vi;

}
请求:

 String photoXml="<spGetUserPhoto><UserID>148</UserID></spGetUserPhoto>";
  String response=new ParseXMLString().getUserPhotos(newGeneric().photInfo(photoXml));
  String[] photos=new String[response.size()];
  for(int i=0;i<response.size();i++)
  {
      photos[i]=photoResponse;

   }  

        list=(ListView)findViewById(R.id.list);
        adapter=new LazyAdapter(this, photos);
        list.setAdapter(adapter);
从上面的代码中,当响应完成时,我正在查看图像。在查看图像之前,我得到的是空白屏幕,但不是默认图像

如何显示默认图像直到响应完成

有人帮我吗

  • 您需要使用image.setTag(数据[位置])
  • 在item1.xml的xml中,您需要给出

  • 首先,图像数据是二进制的,而不是字符串…@ingsaurabh我正在按如下方式转换显示图像类中的enitire字符串数组:byte[]imgArry=Base64.解码(照片);位图位图=位图工厂.decodeByteArray(imgArry,0,imgArry.length);使用
    imageLoader.DisplayImage(数据[位置]、活动、图像)下载图像之前
    您应该将默认图像设置为
    ImageView
    。之所以需要这样做,是因为convertview实际上是旧的视图,该视图正在重复使用,并且已经具有以前下载的图像。