Android içinde GridView resimleri hücre sisteminde sıralıyor. Özellikle 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 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. AndroidManifest.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;
}
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<GridView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/gridView1_bir">
</GridView>
</LinearLayout>
GridViewConfig.java
package com.gridview.sample;
import java.util.ArrayList;
public class GridViewConfig {
private static ArrayList<String> resim_list=new ArrayList<String>();
public static ArrayList<String> getResim_list() {
return resim_list;
}
public static void setResim_list(ArrayList<String> 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");
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gridview.sample"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MyGridView"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>


[...] 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 [...]
Useless, should use AsyncTask
Nice tutorial….