Set SeekBar's progress color to transparent

眉间皱痕 提交于 2020-02-03 03:25:12

问题


Here is a picture of what I want to accomplish, where there is no progress color (transparent), with a solid grey background bar:

I tried

android:progressTint="#00000000"

But that sets the whole bar (progress bar AND the back bar) to transparent.

I also tried:

android:progressDrawable="@drawable/customseekbar"

where customseekbar.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/seekbar_background" />

<item android:id="@android:id/progress">
    <clip android:drawable="@drawable/seekbar_background" />
</item>

and seekbar_background.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid
        android:color="#FF555555" />
</shape>

but then I get this fat and ugly:

What am I doing wrong here? Thanks


回答1:


How to Style a Seekbar in Android

Here you go, you need to do the following

Step 1:

In drawable, put "progress_bg.png" (find attached)

Step 2:

In drawable, create "myprogessbar_style.xml", and insert the following

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@android:id/background"
          android:drawable="@drawable/progress_bg" />
    <item
        android:id="@android:id/secondaryProgress"
        >
        <scale
            android:drawable="@drawable/progress_bg"
            android:scaleWidth="100%"/>
    </item>
    <item
        android:id="@android:id/progress"
        android:drawable="@drawable/progress_bg"/>

</layer-list>

Step 3:

Your seekbar

<SeekBar
            android:id="@+id/seekBar1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_margin="10dp"
            android:indeterminate="false"
            android:paddingLeft="15dp"
            android:paddingRight="15dp"
            android:progressDrawable="@drawable/myprogessbar_style"/>

Result

Attachment

P.S. Yes, it's not a transparency but the expected result




回答2:


This seems to work:

<SeekBar
    ...
    android:progressTint="@android:color/transparent"
    ... />



回答3:


seekbar_background.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line">
    <stroke android:height="1px" android:color="#FF555555" />
</shape>

1px line shape




回答4:


android:maxHeight="3dp" add this to your layout xml where you have mentioned the seekbar. You can change the dp if you wish to decrease the height




回答5:


That's much easier to solve. In your seekbar_background.xml:

Instead of:

  android:color="FF555555"

Try:

  android:color="@android:color/transparent"



回答6:


android:background="@android:color/transparent"

This set my SeekBar in Android Studio background to transparent. Pretty straight forward.



来源:https://stackoverflow.com/questions/33380976/set-seekbars-progress-color-to-transparent

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!