2010-07-06 7 views
11

J'utilise un SeekBar dans mon application et je voudrais le personnaliser un peu. J'ai déjà compris comment changer le Drawable pour le pouce et pour l'arrière-plan. Ma question est de savoir comment changer la taille de SeekBar? Si je change juste la hauteur de la SeekBar like this, the Voir is only clipped and it only shows the top piece of the SeekBar`:Comment personnaliser le look d'un SeekBar dans Android?

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

Comment puis-je modifier la taille globale du Seekbar? Je veux qu'il soit beaucoup plus mince que le standard SeekBar.

+0

vous pouvez également suivre ce tutoriel. http://www.mokasocial.com/2011/02/create-a-custom-styled-ui-slider-seekbar-in-android/ – Ali

Répondre

13

Je ne suis pas sûr de Seekbars, mais ProgressBars peut être personnalisée en utilisant un style personnalisé (défini dans votre styles.xml) comme ceci:

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

Ensuite, vous pouvez mettre en place un drawable personnalisé basé sur le progress_horizontal.xml du système Android (il est dans le dossier frameworks/base/core/res/drawable d'un AOSP checkout). Voici an example à partir d'un projet open-source.

23

Vous avez l'équivalent de ce de la barre de progression pour le seekbar en effet:

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

Vous pourriez vouloir remplacer tout cela et faire votre chemin, comme vous le feriez pour la barre de titre, en définissant votre propre style.

+0

cela fonctionne pour moi et montre comment changer l'image "pouce" (I ne peut pas comprendre à quoi sert le "thumbOffset") –

+1

@RichardLeMesurier thumbOffset est juste un "espace" invisible entre le pouce et les bords de la barre de recherche elle-même. Vous l'avez réglé pour empêcher le pouce de bouger trop loin des côtés. – Glitch

+0

Comment changer l'image "pouce" – mohitum

Questions connexes