如何更改Android中的seekbar颜色?

问题描述:

有没有一种方法可以改变SeekBar android widget中的黄色?如何更改Android中的seekbar颜色?

enter image description here

任何SOLN?

+0

选中此链接可能会对您有所帮助。我想这是可能的从这个链接列表 - 1)[自定义搜索栏](HTTP)(http:// http://*.com/questions/5314488/changing-default-seekbar-color) – 2011-12-22 05:47:35

+0

://www.mokasocial.com/2011/02/create-a-custom-styled-ui-slider-seekbar-in-android/)2)[SeekBar Color Change](http://*.com/questions/ 3480456/seek-bar-change-path-color-from-yel​​low-to-white)3)[SeekBar Customizing](http://www.anddev.org/seekbar_progressbar_customizing-t6083.html) – Praveenkumar 2011-12-22 05:44:59

+0

这可能有助于你http: //techdroid.kbeanie.com/2010/04/custom-progressbar-for-android。html – 2011-12-22 05:44:30

第1步:创建您的图片可绘制(9补丁)

创建任何XML可绘制之前,请确保您创建所需的搜索条背景图像绘制资源(包括一个9补丁绘制),处理和进度部分。在下面的步骤中,9个补丁的drawable将被XML drawable使用。

创建以下可绘制并将其放置在你的/ RES /绘制/文件夹:

第2步:搜索栏进展可绘制

现在创建为Android搜索条进步的XML绘制(蓝色条纹部分在该示例中),seekbar_progress_bg.xml调用它,并且把它放在/ RES /抽拉/文件夹:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <clip> 
      <shape> 
       <gradient 
        android:startColor="#FF5e8ea3" 
        android:centerColor="#FF32a0d2" 
        android:centerY="0.1" 
        android:endColor="#FF13729e" 
        android:angle="270" 
       /> 
      </shape> 
     </clip> 
    </item> 
    <item> 
     <clip> 
     <bitmap xmlns:android="http://schemas.android.com/apk/res/android" 
      android:src="@drawable/stripe_bg" 
      android:tileMode="repeat" 
      android:antialias="true" 
      android:dither="false" 
      android:filter="false" 
      android:gravity="left" 
     /> 
     </clip> 
    </item> 
</layer-list> 

上述XML第一绘制半透明,蓝色渐变,然后层的半透明条带在gradi顶部的图像ENT。突出显示的代码行(第20行)是指在第1步中创建的可绘制文件夹内的条纹(半透明)图像。

有关通过XML创建自定义形状的更多信息,请查看Android可绘制资源文档,特别是位图和形状部分。

步骤3:搜索栏背景绘制对象

接着创建主搜索条进展可拉伸;它会为你的seekbar中的seekbar progress和secondaryProgress动作分配一个drawable。命名可绘制类似seekbar_progress.xml,将其放置里面的/ RES /抽拉/文件夹:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@android:id/background"> 
     <nine-patch 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:src="@drawable/seekbar_background" 
      android:dither="true" 
     /> 
    </item> 
    <item android:id="@android:id/secondaryProgress"> 
     <clip> 
      <shape> 
       <gradient 
        android:startColor="#80028ac8" 
        android:centerColor="#80127fb1" 
        android:centerY="0.75" 
        android:endColor="#a004638f" 
        android:angle="270" 
       /> 
      </shape> 
     </clip> 
    </item> 
    <item 
     android:id="@android:id/progress" 
     android:drawable="@drawable/seekbar_progress_bg" 
    /> 
</layer-list> 

的上面突出显示的代码(第8行)的第一个比特被参照搜索条背景图像(9-补丁抽拉)在步骤1中(第29行)创建指的是可绘制在步骤上面创建2

第4步:把它放在一起......

在这一点上,所有你需要做的就是打电话给你seekbar_progress在声明您的搜索栏时可绘制:

<SeekBar 
     android:id="@+id/frequency_slider" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:max="20" 
     android:progress="0" 
     android:secondaryProgress="0" 
     android:progressDrawable="@drawable/seekbar_progress" 
     android:thumb="@drawable/seek_thumb" 
/> 

突出显示的代码的两行是为SeekBar项目设置进度和缩略图。 @ drawable/seekbar_progress指向在上一步中创建的XML drawable。

+2

这看起来很痛苦,只能改变背景。 – Zammbi 2012-05-28 03:27:32

+1

我喜欢这是如何从http://www.mokasocial.com/2011/02/create-a-custom-styled-ui-slider-seekbar-in-android/直接复制...这是有用的,但你可以用自己的话代替。 – agweber 2012-06-02 22:50:16

+0

如果你的SeekBarPreference全部在java中,你会怎么做? – 2013-07-26 02:50:40