본문 바로가기

프로그래밍/안드로이드

[안드로이드 팁] 안드로이드 SeekBar 이미지 꾸미기

안드로이드 SeekBar 이미지 꾸미기

 --  seekbar_layout.xml ---
<?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/파일이름">
</item>

  <item android:id="@android:id/progress">
      <clip android:drawable="@drawable/파일이름"/>
</item>
<item android:id="@android:id/secondaryProgress">
              <clip android:drawable="@drawable/파일이름"/>
    </item>   
</layer-list>

프로그레스바에 적용할 이미지를 준비한다음 위와 같이 작성합니다.

조심하여 보실것은 background에는 clip이 없고 나머지는 있습니다. 
제가 삽질한 곳인데 모두 clip를 주게 되면 배경이 나타나지 않습니다.
배경을 줄곳은 clip를 없애고 스크롤바가 움직이면서 보여지는 이미지는 clip를 주어 작성합니다.

위와 같이 파일을 생성하여 내용을 작성하신 이후에 레이아웃의  SeekBar안에 속성값으로 아래와 같이 주면 프로그레스바의 배경 색이 바뀌신것을 볼수 있을겁니다. 

android:progressDrawable="@drawable/seekbar_layout"

그다음 프로그래스바를 움직이는 녀석(Thumb라고 하더군요)입니다.


----- thumb_layout.xml ------------

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    
    <item 
                android:state_focused="true" 
                android:state_pressed="true" 
                android:drawable="@drawable/이미지이름" />     
        <!--  Ordinary focus state   -->
        <item 
                android:state_focused="false" 
                android:state_pressed="false"
                android:drawable="@drawable/ 이미지이름 " />           
            <!--  The State has the focus  -->
        <item 
                android:state_focused="true" 
                android:state_pressed="false"           
                android:drawable="@drawable/ 이미지이름 " />      
            <!--  Has focus   -->
        <item 
                android:state_focused="true"           
                android:drawable="@drawable/ 이미지이름 " />
        <item 
                android:state_focused="false" 
                android:state_pressed="true"
                android:drawable="@drawable/ 이미지이름 " />
</selector>


와 같이 작성합니다.

후에 아래와 같이 SeekBar 의 속성을 설정하시면 됩니다.

 android:thumb="@drawable/ thumb_layout "