7

I want to create a seek bar totally programmatically. All formatting is to be done from code itself. I cant even use a drawable from xml files.

Everything is working fine except the drawable for seek bar line. I can change the color of the line / change it to some drawable etc. but can't change the thickness of the line.

I am getting the following output:

output

But I want to achieve somewhat like the below thin line:

desired

halfer
  • 19,824
  • 17
  • 99
  • 186
S P
  • 854
  • 4
  • 10
  • 21
  • look at this..http://stackoverflow.com/questions/13158831/changing-the-size-of-the-seekbar-programmatically-but-cant-get-the-thumb-to-be-l..hope it helps you. – Born To Win May 05 '14 at 07:43
  • yes ..even I reached at that level but I want to reduce the thickness / height of this bar :( – S P May 05 '14 at 08:07

2 Answers2

23

You can change the size/thickness of your seek-bar by just using two attributes of seekbar. Which are:

android:minHeight="2dip"

android:maxHeight="2dip"

For example:

            <SeekBar
                android:progressDrawable="@drawable/seek_progress"
                android:thumb="@drawable/thumb"
                android:id="@+id/seekDistance"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:max="80"
                android:minHeight="2dip"
                android:maxHeight="2dip"
                />
halfer
  • 19,824
  • 17
  • 99
  • 186
Droid_Mechanic
  • 1,474
  • 14
  • 13
4

for that you have to make a new drawable shape in xml, right click on drawable folder and create new resource file name it "progress_drawable", paste this xml style.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape>
            <solid
                android:color="#bababa"/>
            <size
                android:height="13dp"
                android:width="13dp" />
            <corners android:radius="7dp" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid
                    android:color="@color/colorAccent"/>
                <corners android:radius="7dp" />
            </shape>
        </clip>
    </item>
</layer-list>

now apply this drawable to your seekbar, also set android:maxHeight

        <SeekBar
        android:id="@+id/sb"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="10"
        android:maxHeight="10dp"
        android:minHeight="10dp"
        android:progressDrawable="@drawable/progress_drawable"/>
Amir Dora.
  • 2,831
  • 4
  • 40
  • 61