Android

Android – SeekBar Kullanımı

SeekBar Nedir?

SeekBar, kullanıcının bir seviye belirlemesini sağlayan bileşendir. İncelediğimiz bir önceki bileşen olan ProgressBar’ın, kullanıcının seviyeyi belirlemesi için bir imleç eklenmiş halidir. Bu  bileşen genellikle ses, media(müzik, video vb.) gibi ortamların kontrolü için kullanılır.

Bilmemiz Gereken Public Metodları

Örneklerde, seekBar ismindeki değişkenin oluşturulduğunu varsaydım. Örnek Uygulama kısmında bu değişkenin nasıl oluşturduğunu görebilirsiniz.

1- void setMax(int max)

Bu metod, SeekBar‘ın maximum değerini belirlememizi sağlar. Maximum değer, varsayılan olarak 100’dür. Değiştirmek için bu metod kullanılır. Kullanımı şu şekildedir;

[syntax type=”html|php|js|css”]seekBar.setMax(255);[/syntax]

2- void setOnSeekBarChangeListener(SeekBar.OnSeekBarChangeListener)

Bu metod, SeekBar‘da gerçekleşen değişiklikleri yakalamak için kullanılır. Kullanımı şu şekildedir;

seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

    public void onStopTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
    }

    public void onStartTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
    }

    public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
        // SeekBar'ın değeri değiştiğinde yakalamak için burayı kullanabilirsiniz.
    }
});

 

Örnek Uygulama

Şimdi de örnek bir uygulama ile bu bileşenin kullanımını iyice anlayalım.

Öncelikle her zamanki gibi bir proje oluşturalım ve uygulamamıza başlayalım.

Uygulama İçeriği

Uygulamamızda SeekBar’ları kullanarak arkaplan rengini ayarlayacağız. RGB renk kodlarını kullanacağız. Red, Green, Blue değerlerini ayarlamak için üç tane SeekBar olacak ve bunların değerleri değiştikçe arkaplan rengi değişecek.

Layout’un Hazırlanması

activity_main.xml dosyamızı açıyoruz ve tasarım kısmına (Graphical Layout) geçiyoruz. Burada Form Widgets sekmesi altından üç tane TextView ve üç tane de SeekBar‘ı sürükle bırak mantığıyla Linear Layout‘umuzun içerisine alıyoruz.

Şimdi, XML kısmını aşağıdaki gibi düzenliyoruz.

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_margin="10dp"
    android:orientation="vertical" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:text="Red" />
    <SeekBar
        android:id="@+id/seekBarRed"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:text="Green" />
    <SeekBar
        android:id="@+id/seekBarGreen"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:text="Blue" />
    <SeekBar
        android:id="@+id/seekBarBlue"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <View
        android:id="@+id/background"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_margin="20dp"
        android:layout_weight="1" >
    </View>
</LinearLayout>

Tasarım kısmında yapacaklarımız bu kadar. Şimdi MainActivity’yi düzenlemeye geçelim.

Kodlama (MainActivity)

MainActivity sınıfını da aşağıdaki gibi güncelleyelim.

public class MainActivity extends Activity {
	
	//Değişkenleri tanımlıyoruz.
	View background;
	
	SeekBar redSeekBar;
	SeekBar greenSeekBar;
	SeekBar blueSeekBar;
	
	int redValue;
	int greenValue;
	int blueValue;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		
		background = findViewById(R.id.background);
		
		redSeekBar = (SeekBar) findViewById(R.id.seekBarRed);
		greenSeekBar = (SeekBar) findViewById(R.id.seekBarGreen);
		blueSeekBar = (SeekBar) findViewById(R.id.seekBarBlue);
		
		redValue  = redSeekBar.getProgress();
		greenValue  = greenSeekBar.getProgress();
		blueValue  = blueSeekBar.getProgress();
		
		//SeekBar'ların max değerlerini 255 olarak set ediyoruz. 
		redSeekBar.setMax(255);
		greenSeekBar.setMax(255);
		blueSeekBar.setMax(255);
		
		//Arkaplanın başlangıç rengini set ediyoruz.
		background.setBackgroundColor(Color.rgb(redValue, greenValue, blueValue));
		
		redSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
			
			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
			}
			
			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
			}
			
			@Override
			public void onProgressChanged(SeekBar seekBar, int progress,
					boolean fromUser) {
				//Arkaplanı yeni değere göre set ediyoruz.
				redValue = progress;
				background.setBackgroundColor(Color.rgb(redValue, greenValue, blueValue));
			}
		});
		
		greenSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
			
			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
			}
			
			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
			}
			
			@Override
			public void onProgressChanged(SeekBar seekBar, int progress,
					boolean fromUser) {
				//Arkaplanı yeni değere göre set ediyoruz.
				greenValue = progress;
				background.setBackgroundColor(Color.rgb(redValue, greenValue, blueValue));
			}
		});
		
		blueSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
			
			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
			}
			
			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
			}
			
			@Override
			public void onProgressChanged(SeekBar seekBar, int progress,
					boolean fromUser) {
				//Arkaplanı yeni değere göre set ediyoruz.
				blueValue = progress;
				background.setBackgroundColor(Color.rgb(redValue, greenValue, blueValue));
			}
		});
		
	}
	
}

Evet uygulamamız hazır. Kodlar arasına gerekli açıklamaları yazdım. Anlaşılmayan noktaları yorum olarak yazabilirsiniz. Cevaplamaktan memnuniyet duyarım.

Ekran Görüntüleri

seekbar_kullanimi
Kaynak Kodlar

Uygulamanın kaynak kodları : https://github.com/mursidyazar/Android-SeekBar.git

Benzer Yazılar

Android Görsel Bileşenler;

  1. TextView ve EditText
  2. ImageView
  3. Button ve StateListDrawable
  4. Toast
  5. ListView
  6. WebView
  7. Spinner
  8. CheckBox
  9. ProgressBar
  10. SeekBar

Yorum Yap