Possible to do rounded corners in custom Progressbar progressDrawable?

前端 未结 2 1622
孤独总比滥情好
孤独总比滥情好 2021-01-03 03:12

I have a progress bar that is supposed to look like the attached image:\"enter

And I\'

相关标签:
2条回答
  • 2021-01-03 03:32

    Try this , you may be able to do what you want by modifying the color and width and height of the thumb and the seekbar in xml.

    you can see the image here

    This sulotion was the only way i could do this. Hope this help

    this is my seekbar :

             <SeekBar
                android:id="@+id/simpleProgressBar"
                android:layout_width="fill_parent"
                android:layout_height="12dp"
                android:max="100"
                android:progress="0"
                android:background="@null"
                android:shape="oval"
                android:splitTrack="false"
                android:progressDrawable="@drawable/progress_background"
                android:secondaryProgress="0"
                android:thumbOffset="10dp"
                android:thumb="@drawable/oval_seekbar_thumb" />
    

    this is (progress_background.xml) :

    <item android:id="@android:id/background">
        <shape android:shape="rectangle">
            <corners android:radius="5dp" />
    
            <gradient
                android:angle="270"
                android:endColor="@color/grey_line"
                android:startColor="@color/grey_line" />
        </shape>
    </item>
    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape android:shape="oval">
                <corners android:radius="5dp" />
                <gradient
                    android:angle="270"
                    android:endColor="@color/blue"
                    android:startColor="@color/blue" />
            </shape>
        </clip>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape android:shape="rectangle">
                <corners android:radius="90dp" />
    
                <gradient
                    android:angle="90"
                    android:endColor="@color/colorPrimaryDark"
                    android:startColor="@color/colorPrimary" />
            </shape>
        </clip>
    </item>
    

    and this is the thumb (oval_seekbar_thumb.xml) :

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <shape android:shape="oval">
                <solid android:color="#ffffff" />
                <stroke android:color="@color/colorPrimaryDark" android:width="3dp"/>
                <size android:height="12dp" android:width="12dp"/>
            </shape>
        </item>
    </selector>
    

    The height of the thumb should be same as the height of the seekbar to look properly.

    0 讨论(0)
  • 2021-01-03 03:43

    Not sure if you can actually round out the edges through API, but you could very easily add a new layer between your white outline, and your actual progress object? The layer could be an exact cutout of the white outline, and thus the progress bar would not show outside the outline.

    0 讨论(0)
提交回复
热议问题