2010-07-06 16 views
11

Io uso un SeekBar nella mia applicazione e vorrei personalizzarlo un po '. Ho già capito come modificare lo Drawable per il pollice e per lo sfondo.Come personalizzare l'aspetto di un SeekBar in Android?

La mia domanda è come cambiare la dimensione del SeekBar? Se mi limito a cambiare l'altezza della SeekBar like this, the View is only clipped and it only shows the top piece of the SeekBar`:

<SeekBar 
    android:layout_height="10dip" 
    style="@style/seekbar_style" /> 

Come faccio a cambiare la dimensione complessiva del Seekbar? Voglio che sia molto più sottile dello standard SeekBar.

+0

puoi seguire questo tutorial. http://www.mokasocial.com/2011/02/create-a-custom-styled-ui-slider-seekbar-in-android/ – Ali

risposta

13

io non sono sicuro di Seekbars, ma ProgressBars può essere personalizzato utilizzando uno stile personalizzato (definito nel styles.xml) in questo modo:

<style name="MyCustomProgressStyle"> 
    <item name="android:indeterminateOnly">false</item> 
    <item name="android:progressDrawable">@drawable/custom_progress_drawable</item> 
    <item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item> 
    <item name="android:minHeight">10dip</item> 
    <item name="android:maxHeight">10dip</item> 
</style> 

Quindi è possibile impostare un disegnabile personalizzato basato sul il sistema Android progress_horizontal.xml (è nella cartella frameworks/base/core/res/drawable di un AOSP checkout). Ecco an example da un progetto open-source.

23

avete l'equivalente di questa della barra di avanzamento per il SeekBar anzi:

<style name="Widget.SeekBar"> 
    <item name="android:indeterminateOnly">false</item> 
    <item name="android:progressDrawable">@android:drawable/progress_horizontal</item> 
    <item name="android:indeterminateDrawable">@android:drawable/progress_horizontal</item> 
    <item name="android:minHeight">20dip</item> 
    <item name="android:maxHeight">20dip</item> 
    <item name="android:thumb">@android:drawable/seek_thumb</item> 
    <item name="android:thumbOffset">8px</item> 
    <item name="android:focusable">true</item> 
    </style> 

così si potrebbe desiderare di ignorare tutto questo e fare a modo tuo, come si farebbe per la barra del titolo, definendo il tuo stile.

+0

questo funziona per me e mostra come cambiare l'immagine "pollice" (I non riesco a capire a cosa serve "thumbOffset") –

+1

@RichardLeMesurier thumbOffset è solo una "fessura" invisibile tra il pollice e i bordi della barra di ricerca stessa. Si imposta per impedire al pollice di spostarsi troppo lontano dai lati. – Glitch

+0

come cambiare l'immagine "thumb" – mohitum