Seekbar中没有标记颜色

时间:2011-11-21 18:42:44

标签: android

我想在搜索栏中删除标记的颜色(在这种情况下为黄色)。

代码:

<SeekBar
    android:id="@+id/seekBar1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true" 
    android:max="20"
    android:progress="10"
    android:secondaryProgress="0"/>

有一种简单的方法吗?

1 个答案:

答案 0 :(得分:1)

View dev doc。 SeekBar派生自View,你应该尝试在xml定义中使用带有Shape Drawable(纯色)的android:background修改背景,或者使用setBackgroundColor以编程方式更改颜色。

要删除颜色,应尝试将其设置为纯透明色。

我没有测试过,所以让我们知道如果失败会发生什么。

<强>更新

你可以尝试:

定义res/drawable/white_bg.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <solid android:color="@android:color/white" />
</shape>

设置SeekBar android:background="@drawable/white_bg"

首先尝试使用纯白色,看看这是否是一个好的开始......

好的,这不起作用。

最终更新

好的,从我定制ProgessBar的我的项目中得到它。由于SeekBar派生自ProgressBar,因此您需要定义res/drawable/seekbar_bg.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">
    <shape>
      <corners android:radius="5dip" />
      <gradient
          android:startColor="#ff9d9e9d"
          android:centerColor="#ff5a5d5a"
          android:centerY="0.75"
          android:endColor="#ff747674"
          android:angle="270"/>
    </shape>
  </item>

  <item android:id="@android:id/progress">
    <clip>
      <shape>
        <corners android:radius="5dip" />
        <solid android:color="@android:color/transparent" />
      </shape>
    </clip>
  </item>

</layer-list>

类似于platforms/android-8/data/res/drawable/progress_horizontal.xml文件(android-8是一个示例)并为您的SeekBar xml定义定义android:progressDrawable="@drawable/seekbar_bg"属性。

我认为不需要在Layer List中为SeekBar定义@android:id/secondaryProgress项,但应该对其进行验证......

您还可以通过声明受platforms/android-8/data/res/drawable/seek_thumb.xml启发的本地选择来重新定义the thumb symbol selector

有趣的是,我从未使用过SeekBar,因此我学到了很多东西,谢谢! ;)

我对试用/错误方法和多次更新表示歉意......