Android Dersleri 8
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 nesneoluş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 xmlkı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 finalolarak 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.
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 listenertanımlayalım ve kodlarımızı, hareket ettirme metodu içine yazalım. Aşağıdaki kodları da, onClick()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.
Programı çalıştırdığımızda ekran görüntüleri şu şekilde olacaktır.
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.