1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
package com.weblogy.abidjan.photo;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
import com.weblogy.abidjan.LazyAdapter;
import com.weblogy.abidjan.R;
import com.weblogy.abidjan.XMLParser;
public class MainActivity extends Activity {
static final ArrayList<String> mImages = new ArrayList<String>();
// All static variables
static final String URL = "http://news.abidjan.net/apps/iphone/photos.xml";
// XML node keys
static final String KEY_ITEM = "item"; // parent node
static final String KEY_PHOTO = "photo";
ListView list;
LazyAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.photonews);
XMLParser parser = new XMLParser();
String xml = parser.getXmlFromUrl(URL); // getting XML from URL
Document doc = parser.getDomElement(xml);
NodeList nl = doc.getElementsByTagName(KEY_ITEM);
for (int i = 0; i < nl.getLength(); i++) {
// creating new HashMap
Element e = (Element) nl.item(i);
// adding each child node to HashMap key => value
mImages.add(parser.getValue(e, KEY_PHOTO));
}
ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
ImagePagerAdapter adapter = new ImagePagerAdapter();
viewPager.setAdapter(adapter);
}
private class ImagePagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return mImages.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((ImageView) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Context context = MainActivity.this;
ImageView imageView = new ImageView(context);
int padding = context.getResources().getDimensionPixelSize(
R.dimen.padding_medium);
imageView.setPadding(padding, padding, padding, padding);
imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
imageView.setImageDrawable(getPicture(mImages.get(position)));
((ViewPager) container).addView(imageView, 0);
return imageView;
}
private Drawable getPicture(String urlPath) {
// the drawable to return
Drawable drawable = null;
try {
// retrieve the URL
URL url = new URL(urlPath);
// Open an input stream on it
InputStream is = (InputStream) url.getContent();
// build the drawable from that input stream
drawable = Drawable.createFromStream(is, "src");
} catch (IOException e) {
Log.e("::>", e.toString() +"::::"+ urlPath);
e.printStackTrace();
}
return drawable;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((ImageView) object);
}
}
} |
Partager