带有web中xml文件图像的GridView

带有web中xml文件图像的GridView,gridview,android-widget,Gridview,Android Widget,我试图展示一些图像,其中URL位于XML文件中,您可以在web上找到它。我尝试过gridview,它成功了,我尝试过显示XML文件中的图像,它成功了,但是当我把两者放在一起时,它就不起作用了!!我不知道原因。需要帮忙吗 代码是: package com.examples.xmlparser; import java.io.InputStream; import java.net.URL; import java.util.List; import javax.xml.parsers.SAXP

我试图展示一些图像,其中URL位于XML文件中,您可以在web上找到它。我尝试过gridview,它成功了,我尝试过显示XML文件中的图像,它成功了,但是当我把两者放在一起时,它就不起作用了!!我不知道原因。需要帮忙吗

代码是:

package com.examples.xmlparser;

import java.io.InputStream;
import java.net.URL;
import java.util.List;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;

import android.app.Activity;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class XMLParser extends Activity {


 private List<String> listPicName;
 public List<Drawable> pictures;

       @Override
       public void onCreate(Bundle icicle) {
               super.onCreate(icicle);
               setContentView(R.layout.gridview);

               ImageView imgView =(ImageView)findViewById(R.id.ImageView01);

               setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) ;

               try {
                       /* Create a URL we want to load some xml-data from. */
                       URL url = new URL("http://94.23.207.167/websiteIphone/Admin/XML/Santa.xml");

                       /* Get a SAXParser from the SAXPArserFactory. */
                       SAXParserFactory spf = SAXParserFactory.newInstance();
                       SAXParser sp = spf.newSAXParser();

                       /* Get the XMLReader of the SAXParser we created. */
                       XMLReader xr = sp.getXMLReader();
                       /* Create a new ContentHandler and apply it to the XML-Reader*/
                       ExampleHandler myExampleHandler = new ExampleHandler();
                       xr.setContentHandler(myExampleHandler);

                       /* Parse the xml-data from our URL. */
                       xr.parse(new InputSource(url.openStream()));
                       /* Parsing has finished. */

                       /* Our ExampleHandler now provides the parsed data to us. */
                       ParsedExampleDataSet parsedExampleDataSet =  myExampleHandler.getParsedData();

                       listPicName=parsedExampleDataSet.getlistPicName();
                       /* Set the result to be displayed in our GUI. */
                //       tv.setText(parsedExampleDataSet.toString());

                       for (int j=1;j<listPicName.size();j++){
                           Toast.makeText(XMLParser.this, "" + listPicName.get(j), Toast.LENGTH_SHORT).show();

                           Drawable d=LoadImageFromWebOperations(j);
                        Log.w("ANTES","ANTES");

                           pictures.add(j, d);
                           Log.w("DESPUES","DESPUES");


                       }


                     //  imgView.setImageDrawable(LoadImageFromWebOperations(10));
                       GridView gridview = (GridView) findViewById(R.id.gridview);
                       gridview.setAdapter(new ImageAdapter(this));

               } catch (Exception e) {
                       /* Display any Error to the GUI. */
                     //  tv.setText("Error: " + e.getMessage());
               }
               /* Display the TextView. */
              // this.setContentView(tv);
       }









       public class ImageAdapter extends BaseAdapter {
         private Context mContext;

         public ImageAdapter(Context c) {
             mContext = c;
         }

         public int getCount() {
             return 0; //mThumbIds.length;
         }

         public Object getItem(int position) {
             return null;
         }

         public long getItemId(int position) {
             return 0;
         }


         // create a new ImageView for each item referenced by the Adapter
         public View getView(int position, View convertView, ViewGroup parent) {
             ImageView imageView;
                if (convertView == null) {  // if it's not recycled, initialize some attributes
                    imageView = new ImageView(mContext);
                    imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
                    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                    imageView.setPadding(8, 8, 8, 8);
                } else {
                    imageView = (ImageView) convertView;
                }
                //imageView.setImageResource(mThumbIds[position]);
                //Drawable d=LoadImageFromWebOperations(position);
                imageView.setImageDrawable(pictures.get(position));
                //Drawable d=LoadImageFromWebOperations(position);
                //imageView.setBackgroundDrawable(d); 
             return imageView;
         }


     }




       private Drawable LoadImageFromWebOperations(int position)
    {
        String path=("http://94.23.207.167/websiteIphone/Admin/content/Santa/Santa/3_1.jpg");
     //   path=path.concat(listPicName.get(position));
     //   path=path.concat(".jpg");
           Toast.makeText(XMLParser.this, "" +path, Toast.LENGTH_LONG).show();
           Log.w("MIERDA","MIERDA");

         try{
             InputStream is = (InputStream) new URL(path).getContent();
             Drawable d = Drawable.createFromStream(is, "src name");
             Log.w("CREADO","CREADO");
             return d;
         }catch (Exception e) {
             System.out.println("Exc="+e);
             return null;
         }
  }


}

我认为,您必须替换代码:

public int getCount() {
             return 0; //mThumbIds.length;
         }
使用此代码:

public int getCount() { 
    return pictures.size(); 

        } 
因为,由于代码中图片(列表)的大小为零,代码的其余部分将不会执行

public int getCount() { 
    return pictures.size(); 

        }