Merhaba arkadaşlar. Bu derste SeekBar kullanımını anlatacağım. SeekBar, sağa sola doğru sürüklenebilen çubuğa verilen isimdir. Sürüklendikçe ses açma, renk değiştirme gibi işlemler için kullanılırlar.
Bir uygulama üzerinde anlatalım. 3 adet SeekBar ekleyelim. Bunları oynattıkça ekranımızın arkaplanının rengi değişsin. 3 SeekBar da farklı renklerin değişimini sağlasın.
Bir proje açalım ve sayfamıza, soldaki panelden 3 adet SeekBar ve 3 adet TextView ekleyelim. Değerlerini aşağıdaki gibi değiştirelim.
Daha sonra sayfamızın kod kısmına geçelim. Bu SeekBar araçları ile çalışabilmek için bundan 3 adet nesne oluşturmamız gerekiyor. Arkaplan ile işlem yapabilmek için de Layout sınıfından bir nesne oluşturacağız. Bu nesne oluşturma işlemlerini aşağıdaki gibi yapalım.
Nesne oluşturma işlemlerini yaptık. Bu arada Layout için bir id‘ye sahip değilseniz, aşağıdaki gibi xml kısmında Layout’unuza bir id verin.
Bir de şunu söyleyelim. Nesne oluşturma işlemlerini yukarıda değil de aynı satırda yapsaydık o zaman final olarak tanımlamak zorunda kalacaktık. Çünkü bu nesneleri başka metodlardan kullanabilmek için, referans atamalarını bir metod içinde değil sınıf içinde yapmak zorundayız.
Nesne tanımladıktan sonra şimdi Listener tanımlayalım. Her nesne için bir Listener tanımlayacağız. Bunun için SeekBar için kullanılan aşağıdaki Listener’ı kullanacağız.
1 |
setOnSeekBarChangeListener |
Bu listener, içerisinde 3 metodla birlikte gelir. Bunlar başlatma, durdurma ve hareket ettirme. Biz olaylarımızı, hareket ettirme metodu içerisine yazacağız. Şimdi aşağıdaki gibi her nesne için bir listener tanımlayalım ve kodlarımızı, hareket ettirme metodu içine yazalım. Aşağıdaki kodları da, onCreate() metodunun içerisine ve nesne oluşturmanın devamına yazıyoruz.
Buradaki kodlar için şunu söyleyelim. Her SeekBar nesnesi için 3 adet Listener oluşturduk. Her listener, içerisinde 3 tane metod bulunduruyor. Fakat bize sadece hareket ettirme metodu lazım olduğu için diğerlerinin içini boş bıraktık. Hareket ettirme metodu olan onProgressChanged() metodunun içinde de şunları yaptık. setMax() metodu ile SeekBar’ın alacağı en fazla değeri belirledik. Bunu 255 yaptık çünkü RGB (red,green,blue) renkleri, 255’e kadar değer alabilir. Daha sonra onProgressChanged() metodunda hazır gelen progress parametresini, android.graphics.Color.rgb() metoduna parametre olarak verdik. Eğer kırmızı renk vermesini istiyorsak ilk parametreye verdik, diğerlerini de sıfır yaptık. Bu şekilde 3 SeekBar için de renkleri verdik ve dönen değerleri, arkaplanın değeri olarak atadık.
Seekbar Ekran Görüntüleri
Uygulamamızı bu şekilde tamamladık. SeekBar, hareket ettirildikçe farklı amaçlar için de kullanılabilir. Mesela ekrandaki bir resmin konumunu ya da bir sayının değerini bu şekilde çubuklarla oynayarak değiştirebilirsiniz.
Mehmet hocam merhaba ben bunu denedim ama setOnSeekBarChangeListener hata alıyor. bu yüzden tüm overridelarda nasıl düzelteceğimi anlamadım mehmet hocam.
Paketi import etmemiş olabilirsiniz. Ctrl+shift+o tuşlarına basın eclipse deki sayfaniz açıkken. Olmazsa hatanın, çıkan uyarı yazısıyla beraber görüntüsü alıp bana gönderin
Hallettim hocam 1 paketi import etmemiş ordan çıkmış sorun teşekkür ederim tekrar.
selam hocam bunun gıbı uygulamaya ses acma kapama nasıl yaparız..
Hocam aşağıdaki gibi bir ibare kullanmışsınız:
” Aşağıdaki kodları da, onClick() metodunun içerisine ve nesne oluşturmanın devamına yazıyoruz.”
hangi nesnenin onClick metodu oluyor bu acaba?
Merhaba. Yazımdaki 2. resimde nesne tanımlamışım. Onun devamına yazılacak kodlar. onClick() değil onCreate() olacak kusura bakmayın.
sorun değil hocam emeğinize sağlık 🙂