Mehmet Ethem SULAN :: Android :: Android Load Image From URL in Gallery Example

Android ile verilen bir Image URLsini Gallerye eklemeye çalıştım. Daha iyi anlamak için Gridview örneğine bakın. Internet erişim izni vermeyi unutmayın.

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

android gallery

GalleryActivity.java

package com.android.gallery;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Gallery;
import android.widget.Toast;

public class GalleryActivity extends Activity {
    private Gallery gallery;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        gallery=(Gallery) findViewById(R.id.gallery1_denem);
        gallery.setAdapter(new GalleryAdapter(this));

    }
	@Override
	protected void onResume() {
		super.onResume();
		gallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) {
				Toast.makeText(getApplicationContext(), "Position: "+position+"", Toast.LENGTH_SHORT).show();

			}
		});
	}

}

GalleryAdapter.java

package com.android.gallery;

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

import android.app.ProgressDialog;
import android.content.Context;
import android.database.DataSetObserver;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.SystemClock;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.SpinnerAdapter;

public class GalleryAdapter extends BaseAdapter {

	int galleryItem;
	private Context context;
	private GalleryConfig galleryConfig;
	public GalleryAdapter(Context context) {
		super();
		this.context = context;
		galleryConfig=new GalleryConfig();
	}
	@Override
	public int getCount() {
		return galleryConfig.getGallery_list().size();
	}
	@Override
	public Object getItem(int position) {
		return galleryConfig.getGallery_list().get(position);
	}

	@Override
	public long getItemId(int position) {
		return position;
	}
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		ImageView imageView=new ImageView(context);
		imageView.setImageDrawable(loadImageFromURL(galleryConfig.getGallery_list().get(position)));
		imageView.setLayoutParams(new Gallery.LayoutParams(150,120));
		imageView.setScaleType(ImageView.ScaleType.FIT_XY);
		return imageView;
	}
	 private Drawable loadImageFromURL(String url)
	    {
	    try
	    {
	    InputStream is = (InputStream) new URL(url).getContent();
	    Drawable d = Drawable.createFromStream(is, "src");
	    return d;
	    }catch (Exception e) {
	    System.out.println(e);
	    return null;
	    }
	 }

}

GalleryConfig.java

package com.android.gallery;

import java.util.ArrayList;

public class GalleryConfig {
	private ArrayList<String> gallery_list=new ArrayList<String>();

	public ArrayList<String> getGallery_list() {
		return gallery_list;
	}

	public void setGallery_list(ArrayList<String> gallery_list) {
		this.gallery_list = gallery_list;
	}

	public GalleryConfig()
	{
		gallery_list.add("http://www.ethemsulan.com/wp-content/uploads/ara.png");
		gallery_list.add("http://www.ethemsulan.com/wp-content/uploads/cikti5.png");
		gallery_list.add("http://www.minare.net/wp-content/uploads/2011/01/android_ipod_touch_4.jpg");
		gallery_list.add("http://blog.fommy.com/wp-content/uploads/2008/10/android-wallpaper1_1024x768.png");
		gallery_list.add("http://www.buynetbookcomputer.com/android-netbook-images/android-netbook-big.jpg");
		gallery_list.add("http://www.sharepointhoster.com/wp-content/uploads/2011/03/android_apps.jpeg");
		gallery_list.add("http://www.ethemsulan.com/wp-content/uploads/customList.png");
		gallery_list.add("http://www.ethemsulan.com/wp-content/uploads/handler.png");
		gallery_list.add("http://www.ethemsulan.com/wp-content/uploads/xml.png");
		gallery_list.add("http://www.ethemsulan.com/wp-content/uploads/progessbar.png");
	}

}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <Gallery
    android:layout_height="wrap_content"
    android:id="@+id/gallery1_denem"
    android:layout_width="match_parent">
    </Gallery>

</LinearLayout>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.gallery"
      android:versionCode="1"
      android:versionName="1.0">
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

    <application android:icon="@drawable/icon">
        <activity android:name=".GalleryActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

Download AndroidGallery.tar.gz

Comments

There are 7 comments for this post.

  1. Mehmet Ethem SULAN :: Test Güdümlü Yazılım(Test Driven Development) :: How to load internet images in GridView Android sample on Mayıs 15, 2011 5:14 pm

    [...] Image URLelerini internetten çekmek bazen çok yararlı oluyor. Aynı şekilde oluşturulan Gallery örneğine bakabilirsiniz. Normalde res/drawable altında da imageleri atıp ve listeye [...]

  2. UnNamed_ on Mayıs 21, 2011 10:03 am

    Merhabalar, BaseAdapter ı implements eden GalleryAdapter sınıfını oluşturmaya çalıştıgımda hata alıyorum.BaseAdapter adında bi interface olmadıgı uyarısını veriyor?

  3. Ali dogan on Ağustos 12, 2011 1:41 pm

    bu örneklerin… xml ile resim ve text bilgi çekebilecek hali var mı ?

  4. ethemsulan on Ağustos 12, 2011 1:44 pm
  5. tolgahan on Kasım 1, 2011 3:34 pm

    Resimleri listeledikten sonra büyük resimlerini başka bir activity de açmak istersek nasıl birşey yapmak gerekir.

  6. Viren Gujariya on Kasım 8, 2011 6:04 pm

    Great example… But working slove… any reason ?

  7. gmz26 on Şubat 29, 2012 6:12 pm

    Merhaba, ben gallery’imi kaydırmak istiyorum. Yani üzerine marquee özelliği eklemek istiyorum. Normalde bunu bir textview üzerinde yapabiliyorum ama gallery üzerinde deniyince hata alıyorum. Nasıl yapabilirim ??

Write a Comment

Let me know what you think?