1.  SeekBar를 커스터마이징 하자

- SeekBar의 선을 나타내는 progressDrawable,  둥근 커서를 나타내는 thumb가 있는데 각각 커스터마이징 할 수 있다.

 

1) SeekBar 배경설정

<SeekBar
  android:id="@+id/sb_storemainoptiondistance_distance"
  android:thumb="@drawable/seekbar_thumb"
  android:progressDrawable="@drawable/seekbar"
  android:max="4"
  android:progress="2"
  android:layout_marginBottom="50dp"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"/>

 

2) seekbar.xml

- 여기에서 핵심 원리: 여기서 따로 height를 조정할 수 없기 때문에 안에 들어가는 drawable에서 커스터마이징한다.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@android:id/background"
        android:drawable="@drawable/bg_appcolorwhite_radius"/>
    <item android:id="@android:id/progress">
        <scale
            android:drawable="@drawable/bg_appcolor_radius"
            android:scaleHeight="10%"
            android:scaleWidth="100%" />
    </item>
</layer-list>

2-2) bg_appcolorwhite_radius.xml

- 배경을 원하는 색으로하고 선의 두께를 두껍게하고 흰색으로 칠해서 선이 얇아보이게 한다.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item >
        <shape android:shape="rectangle">
            <corners android:radius="10dp"/>
            <solid android:color="@color/appColor"/>
            <stroke android:color="#fff" android:width="4dp"/>
        </shape>
    </item>
</selector>

 

3) seek_tumb.xml

- tumb는 원하는 크기대로 설정할 수 있기 때문에 간단하게 아래와 같이 설정해준다.

<?xml version="1.0" encoding="utf-8"?>
<!-- 원모양의 시크바 컨트롤러 -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval"
    android:useLevel="false"  >
    <!-- 배경 -->
    <solid
        android:color="@color/appColor"/>
    <!-- 테두리 -->
    <stroke
        android:width="2dp"
        android:color="@color/appColor" />
    <!-- 크기 -->
    <size
        android:width="18dp"
        android:height="18dp"/>
</shape>

 

 

+ Recent posts