Я пытаюсь показать некоторые изображения, URL-адреса которых содержатся в файле XML, который можно найти в Интернете. Я пробовал 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;
}
}
}
Файл XML:
GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>