본문 바로가기
안드로이드 자바

[Java][Android] SeekBar 사용하여 값 나타내기

by teamnova 2024. 12. 8.
728x90

안녕하세요.

이번에는 SeekBar를 사용하여 숫자를 조절하고 이를 TextView로 표시하는것을 구현해보도록 하겠습니다. 

SeekBar는 슬라이더와 유사한 UI 컴포넌트로, 숫자 값의 범위를 시각적으로 조절할 때 유용합니다.

 

전체 코드입니다.

 

MainActivity.java

public class MainActivity extends AppCompatActivity {


  private SeekBar seekBarValue;
  private TextView valueLabel;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    seekBarValue = findViewById(R.id.seekBar_value);
    valueLabel = findViewById(R.id.tv_value_label);

    // SeekBar의 값 변경 리스너 설정
    seekBarValue.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
      @Override
      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        // SeekBar 값이 변경될 때 TextView에 값을 표시
        valueLabel.setText("값: " + progress);
      }

      @Override
      public void onStartTrackingTouch(SeekBar seekBar) {
        // 사용자가 SeekBar를 터치했을 때 처리할 내용 (필요 시 구현)
      }

      @Override
      public void onStopTrackingTouch(SeekBar seekBar) {
        // 사용자가 SeekBar 터치를 멈췄을 때 처리할 내용 (필요 시 구현)
      }
    });

  }
}

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical"
  android:gravity="center"
  android:padding="16dp">

  <TextView
    android:id="@+id/tv_value_label"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="값: 0"
    android:textSize="20sp"
    android:layout_marginBottom="16dp" />

  <SeekBar
    android:id="@+id/seekBar_value"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:max="100" />
</LinearLayout>

 

이처럼 SeekBar를 사용하고, setOnSeekBarChangeListener 메소드를 이용해 

SeekBar 값이 변경될 때, 
SeekBar 를 터치했을 때,
SeekBar 터치를 멈췄을 때 등 필요한 상황에 따라 원하는 작동을 구현할 수 있습니다.

 

시연 영상입니다.