24 Şubat 2012 Cuma

Android Programlama XIV - Galeri Oluşturma

Bu yazıda, bir galeri oluşturup, galerideki elemanlara tıklanıldığında ekranda resmin büyük boyutta gözükmesini sağlamayı anlatacağız.

GaleriOlusturma adlı projemizi oluşturalım ve drawable klasörlerinden birinin içine galeride göstermelik bir kaç tane fotoğraf ekleyelim.Daha sonra main.xml'i açıp, birer adet Galery ve ImageView ekleyelim.ImageView'imizin kaynağını ilk resim olarak atayalım şimdilik.İlk açılışta görüntü gelmesin istiyorsanız,ImageView'dan kaynağı(src) kaldırabilirsiniz:




Java kodumuzu açıp ImageView ve Galeri değişkenleri yaratalım ve id'leri ile kodumuza tanıtalım.Galeri değişkenimize ayarları yapmak için setAdapter methodunu çağıralım ve oluşan hatayı şimdilik önemsemeyip, ImageAdapter sınıfını birazdan tanımlamak üzere kodumuza devam edelim.Şimdi galerideki resim elemanlarına tıklanıldığında herhangi bir olay yaratmak üzere setOnItemClickListener methodunu çağıralım ve galerideki elemanların position parametresini kullanarak switch-case ile galeride hangi elemana tıklanılırsa görüntümüzün(ImageView) kaynağını o resme setImageResource(R.drawable.goruntuismi) methodu ile atayalım:



Şimdi de values dosyası içinde yeni bir tane attrs.xml adında bir xml dosyası oluşturalım.İçini aşağıdaki gibi dolduralım.Bu önceden ayarlanmış ve tasarıma uygulayabileceğimiz bir stil. Bu durumda galerinin elemanlarına uyguluyor olacağız bu stili. <attr> tagları ise stil için bir nitelik belirtmektedir.Bizim kullandığımız nitelik galleryItemBackground, galeri elemanları için bir kenarlık stili tanımlar.Birazdan bu stili kullanarak  ImageAdapter sınıfını yazacağız.



En son olarakta ImageAdapter sınıfımızı onCreate methodunun altına aşağıdaki gibi yazıyoruz:



Yukarıda bir tam sayı dizisinde galerideki fotoğrafların kimlik numaralarını tutuyoruz. Daha sonra en altta getView methoduyla gördüğünüz üzere galerideki elemanlara tıklanıldığında daha önce oluşturduğumuz stilden yararlanarak bu elemanların ayarlarını yapıp bu şekilde gösterilmesini sağlıyarak yeni bir görüntü döndürüyoruz.Eğer setLayoutParams' taki 150 ve 100 ile oynarsanız, kenarlığın eni ve boyunda değişiklikler yapabilirsiniz. getCount() galeride kaç eleman olduğunu,getItem(int position) seçili pozisyondaki elemanı döndüren, eklenmesi gereken üst sınıflardan devir alınmış(inherit) abstract methodlar. ImageAdapter constructor'ında stilimizi ve niteliğimizi koda tanıtıyoruz.

Projemiz hazır , çalıştırabiliriz.


Uygulamadan Görüntüler:


İlk resimle birlikte galerimiz:



 Galeride İkinci Eleman Seçili İken:





Projenin kodunu buradan indirebilirsiniz:

Hiç yorum yok:

Yorum Gönder