How to load internet images in GridView Android sample

Android içinde GridView resimleri hücre sisteminde sıralıyor. Özellikle Image URLelerini internetten çekmek bazen çok yararlı oluyor. Normalde res/drawable altında da imageleri atıp ve listeye R.idrawable.imageIsmi şeklinde de ekleyip kullanabilirsiniz. Mesela albüm resimleri listelenir ve tıklandığında o albüme ait music listesi açma gibi yerlede kullanışlıdır. main.xml içinde tanımlanan  android:numColumns="auto_fit" imagelerin sütunlara sığacak şeklilde ayarlıyor.

MyGridView.java
package com.gridview.sample;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.Toast;

public class MyGridView extends Activity {
    private GridView girGridView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        girGridView=(GridView) findViewById(R.id.gridView1_bir);
//ListView gibi buna da adapter set ediliyor.
        girGridView.setAdapter(new ImageAdapter(this));
        
        girGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView arg0, View view, int position,long arg3) {
				Toast.makeText(getApplicationContext(), GridViewConfig.getResim_list().get(position), Toast.LENGTH_SHORT).show();				
			}
		});
    }
}

ImageAdapter.java
package com.gridview.sample;

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

import android.R.integer;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListAdapter;

public class ImageAdapter extends BaseAdapter implements ListAdapter {

	private Context context;
	public ImageAdapter(Context context) {
		super();
		this.context = context;
//Listeye image url si ekliyor
		GridViewConfig.addImageUrls();
	}

	
	@Override
	public int getCount() {
		return GridViewConfig.getResim_list().size();
	}

	@Override
	public Object getItem(int position) {

		return GridViewConfig.getResim_list().get(position);
	}

	@Override
	public long getItemId(int position) {
		
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		ImageView imageView;
		if(convertView==null)
		{
			imageView=new ImageView(context);
			imageView.setLayoutParams(new GridView.LayoutParams(100,100));
			imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
			imageView.setPadding(5,5,5,5);
		}else{
			imageView=(ImageView)convertView;
		}
		imageView.setImageDrawable(LoadImageFromURL(GridViewConfig.getResim_list().get(position)));
		return imageView;
	}
	
//Internetten imageleri stream olarak  cekip drawable olsurturuyor.
	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;
	}
	}

}

GridViewConfig.java
package com.gridview.sample;

import java.util.ArrayList;

public class GridViewConfig {
	private static ArrayList resim_list=new ArrayList();
	
	public static ArrayList getResim_list() {
		return resim_list;
	}

	public static void setResim_list(ArrayList resim_list) {
		GridViewConfig.resim_list = resim_list;
	}

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

main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:orientation="vertical">
    <GridView 
    android:layout_width="match_parent" 
    android:numColumns="auto_fit"
    android:id="@+id/gridView1_bir" 
    android:layout_height="match_parent" 
    android:layout_gravity="center">
    </GridView>
</LinearLayout>

  
               
           
       
Download


Etiketler :




0.0181150436401 | 3.5