개발 창고/Android

[Android] SeekBar 적용하기

로이제로 2020. 7. 26. 19:37
반응형

자주 쓰기도, 자주 쓰지 않기도 하는 기능 중 하나가 SeekBar인데요

주료 옵션/설정 등을 숫자가 아닌 배율로 조정할 경우 적용하는 경우가 많은데요

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <SeekBar
        android:id="@+id/mSeekBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        />
</RelativeLayout>

이렇게 SeekBar를 등록하면

아래와 같이 적용된 화면이 노출됩니다.

 

기본 SeekBar 이미지

이를 Activity에서 활용하려면 다음과 같이 적용해 주면 됩니다.

해당 소스는 SeekBar를 반정도 Active 된 상태로 SeekBar를 수정 시 LogCat에 현재 Progress값을 호출되도록 작업한 소스입니다.

    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);

        // STEP01. layout의 SeekBar를 매칭해준다
        SeekBar mSeekBar = findViewById(R.id.mSeekBar);

        // CASE01. SeekBar에 기본 값이 50%인 경우
        mSeekBar.setProgress(50);

        // CASE02. SeekBar값을 수정시에 처리하고 싶은 경우
        mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean b) {
                Log.d("TAG", "Progress >> " + progress);
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });
    }

기본 50%의 SeekBar가 호출됨
SeekBar 수정시 위와 같은 로그가 호출됩니다.

 

 

SeekBar에 색상을 변경하고 싶은경우

먼저 res > values > style.xml 에 <resources>에 해당 소스를 추가해 줍니다.

    <style name="SeekBarColor" parent="Widget.AppCompat.SeekBar">
        <item name="colorAccent">#000000</item>
    </style>

그러고 나서 SeekBar에 android:theme를 추가해 줍니다.

    <SeekBar
        android:id="@+id/mSeekBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:theme="@style/SeekBarColor"
        />

 

검정색 테마가 적용된 SeekBar

반응형