2011-12-22 59 views
5

¿Hay alguna forma de que pueda cambiar el color amarillo en el widget de SeekBar para Android?¿Cómo cambiar el color de la barra de búsqueda en Android?

enter image description here

Cualquier Soln?

+0

Mira este enlace que puede ser útil. [Cambiando el color predeterminado de la barra de búsqueda] (http://stackoverflow.com/questions/5314488/changing-default-seekbar-color) –

+0

Creo que esto es posible a partir de esta lista de enlaces - 1) [Custom Seekbar] (http : //www.mokasocial.com/2011/02/create-a-custom-styled-ui-slider-seekbar-in-android/) 2) [SeekBar Color Change] (http://stackoverflow.com/questions/ 3480456/seek-bar-change-path-color-from-yellow-to-white) 3) [SeekBar Customizing] (http://www.anddev.org/seekbar_progressbar_customizing-t6083.html) – Praveenkumar

+0

Esto puede ayudarlo http: //techdroid.kbeanie.com/2010/04/custom-progressbar-for-android.html –

Respuesta

1

Paso 1: crear su imagen dibujables (9-Patch)

Antes de crear cualquier dibujables XML, asegúrese de crear las dibujables de imagen (incluyendo uno estirable 9-patch) necesarios para el fondo seekbar, manejar, y secciones de progreso. Los drawwables de 9 parches serán utilizados por XML en los siguientes pasos.

Cree los siguientes dibujables y colocarlos en sus/res/estirable/carpeta:

Paso 2: SeekBar Progreso Disponibles

Ahora crear una dibujable XML para el progreso del androide barra de búsqueda (la sección de rayas azules en el ejemplo), lo llaman seekbar_progress_bg.xml, y colocarlo en sus/res/estirable/carpeta:

<?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> 

el XML anterior dibuja primero un gradiente de color azul semitransparente, entonces la banda capas semitransparentes imagen en la parte superior de la gradi ent. La línea de código resaltada (línea 20) se refiere a la imagen de franja (semitransparente) dentro de la carpeta dibujable, creada en el Paso 1.

Para obtener más información sobre cómo crear formas personalizadas a través de XML, consulte los recursos dibujables de Android documentos , específicamente las secciones de mapa de bits y forma.

Paso 3: SeekBar Antecedentes Disponibles

Siguiente crear el progreso principal seekbar estirable; asignará un drawable al progreso de la barra de búsqueda y las acciones de secondaryProgress dentro de su barra de búsqueda. El nombre de su dibujable algo como seekbar_progress.xml, colocarlo dentro de su/res/estirable/carpeta:

<?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> 

El primer bit de código resaltado anteriormente (línea 8) se refiere a la imagen de fondo seekbar (9-parche dibujable) creado en el paso 1 y (línea 29) se refiere a la estirable que creó anteriormente en el Paso 2.

Paso 4: Puesta en práctica todos juntos ...

en este punto, todo lo que tiene que hacer es llamar a su seekbar_progress dibujable al declarar su barra de búsqueda:

<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" 
/> 

Las dos líneas del código resaltado están configurando el progreso y las opciones para el elemento SeekBar. El @ drawable/seekbar_progress se refiere al XML dibujable creado en el paso anterior.

+2

Parece muy doloroso cambiar solo el fondo je. – Zammbi

+1

Me encanta cómo esto es una copia directa de http://www.mokasocial.com/2011/02/create-a-custom-styled-ui-slider-seekbar-in-android/ ... Es útil, pero podrías haber usado tus propias palabras en su lugar. – agweber

+0

¿Cómo harías esto si tu SeekBarPreference está todo en Java? –

Cuestiones relacionadas