iletişim bilgileri http://iletisimbilgileri.org//iletişim bilgileri

Gridview ve ImageAdapter kullanımı

Merhaba ,bu yazımda gridview’den bahsedeceğim. GridView ızgara şeklinde görünüm sunan layout türüdür. Listview gibi ögelerin listelenmesi için kullanılır benzer bir kullanım sekli vardır . ImageAdapter ise orneğimizde resim kullanacağımız için kullanmamız gereken bir adapter türüdür. Resim yerine bir dizi listeleseydik daha önce yaptığımız listview örneğinde olduğu gibi arrayadapter kulanabilirdik.

Şimdi sıra  adım adım gridview’i yaratıp gerekli bağlantıları yapmaya geldi.

İlk olarak yeni bir proje oluşturuyoruz. Daha sonra yeni bir layout oluşturuyoruz. Bu işlemi layout klasörü üzerinde sag click yaparak new -Android XML File şeklinde gerçekleştirebilirsiniz.

grid_layout.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"
/>

Burada 7. ve 8. satırlar yatay ve dikey boslukları ayarlamamızı sağlıyor.Daha sonra yeni bir class yaratıp bu class’ın ismine ImageAdapter diyoruz. ImageAdapter classını BaseAdapterden extends ediyoruz. Extends işlemi gerçekleştikten sonra class ismi kırmızı ile işaretlenecektir . Çünkü BaseAdapter’ün implement edilmesi gereken metodları vardır. Bunları implements ediyoruz.


public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return ImageArray.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(150, 150));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
//imageview'in boyut olcusunu ayarlar yüklenen resimlerin hepsi aynı boyutlarda olmayabilir setscale type
//bu resimleri belli olculerde keser
imageView.setPadding(2, 2, 2, 2);
//bu satır dort bir taraftan diger elemanları ittirir.
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(ImageArray[position]);
return imageView;
}
private Integer[] ImageArray = {
R.drawable.kapak_10, R.drawable.kapak_1,
R.drawable.kapak_11, R.drawable.kapak_2,
R.drawable.kapak_12, R.drawable.kapak_3,
R.drawable.kapak_13, R.drawable.kapak_4,
R.drawable.kapak_14, R.drawable.kapak_5,
R.drawable.kapak_15, R.drawable.kapak_6,
R.drawable.kapak_1, R.drawable.kapak_7,
R.drawable.kapak_3, R.drawable.kapak_8,
R.drawable.kapak_11, R.drawable.kapak_9,
R.drawable.kapak_7, R.drawable.kapak_1,
R.drawable.kapak_9, R.drawable.kapak_2
};
}

Yukarıda ki butun metodlar baseadapter’ü extends ettikten sonra eclipse tarafından otomatik olarak yazılan metodlardır. Bu metodlardan getCount() metodu array’in uzunlugunu bize geri döndürür. getView() ise view döndürür.Bizim burada döndürdüğümüz view ise imageView’dir.Gridview’in emulatördeki görünümü asağıdaki gibidir.
gridview

0,604