删除SeekBar阴影

时间:2015-05-18 19:01:59

标签: java android seekbar

我的SeekBar和拇指后面有一个随机的阴影,原因有些奇怪(黑暗而不是黑色部分)。我该如何摆脱它?

image of shadow

我的SeekBar:

<SeekBar android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/slider"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:max="10"
    android:thumb="@drawable/thumb"
    android:progressDrawable="@drawable/progress_appearance"/>

thumb.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">

<gradient
    android:startColor="#ffffffff"
    android:endColor="#ffffffff"/>

<size android:height="20dp" android:width="20dp"/>
</shape>

progress_appearance.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:paddingTop="3px"
    android:paddingBottom="3px">
    <shape>
        <corners android:radius="100dip" />
        <gradient
            android:startColor="#000"
            android:centerColor="#000"
            android:endColor="#000"
            android:centerY="0.2"
            android:angle="270"/>
    </shape>
</item>

<item android:id="@android:id/progress">
    <clip>
        <shape>
            <corners android:radius="0dip" />
            <gradient
                android:startColor="#000"
                android:centerColor="#000"
                android:endColor="#000"/>
        </shape>
    </clip>
</item>
</layer-list>

4 个答案:

答案 0 :(得分:7)

试试这个:

    <SeekBar android:layout_width="fill_parent"
        android:layout_height="wrap_content"
/////
        android:background="@null"
/////
        android:id="@+id/slider"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:max="10"
        android:thumb="@drawable/thumb"
        android:progressDrawable="@drawable/progress_appearance"/>

答案 1 :(得分:1)

我使用了这段代码:

<SeekBar
    android:id="@+id/seekbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:max="100"
    android:background="@null"
    android:padding="0dp"
    android:progressDrawable="@drawable/progress_seekbar"
    android:thumb="@android:color/transparent" />

它对我有用。

答案 2 :(得分:1)

在搜索栏中添加此属性

android:splitTrack="false"

答案 3 :(得分:0)

我遇到了类似的问题 经过一番挣扎之后,我发现阴影没有出现背后它的情况。
所以我最后在FrameLayout后面放了一个白色的SeekBar

The weird shadow

这是我的代码。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent">

<!-- Putting this FrameLayout, I could remove the shadow. -->
<FrameLayout
    android:background="@android:color/white"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="70dp">
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <!-- Thumbnail frames you see above -->
            <ImageView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"/>
            ...
        </LinearLayout>

        <!-- The SeekBar -->
        <SeekBar
            android:padding="0dp"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
        ...

这很奇怪,因为我没有把任何前面的阴影放在背后阴影。
我认为这是Android的错误。

我希望它可以帮助你:)