Ho personalizzato il mio SeekBar: utilizzo un'immagine personalizzata come sfondo e un'immagine personalizzata come il pollice (How to create custom layout for seekbar in android? & How to customize the look of a SeekBar in Android?).Personalizzazione SeekBar - come posizionare correttamente l'immagine "thumb" personalizzata?
L'idea è di fare un SeekBar che assomiglia a quelli di questa immagine:
vorrei avere l'immagine del pollice si inseriscono perfettamente nella barra arrotondata quando il valore progress
è impostato su 0 o 100 (su 100).
Per posizionare correttamente il pollice (cioè non si sovrappongono alle estremità della barra) Ho impostato il paddingLeft
& paddingRight
valori esattamente la metà della larghezza della larghezza pollice (Android: Seekbar doesn't scroll all the way to end).
.../res/layout/main.xml:
<SeekBar android:id="@+id/frequency_slider"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:max="100" android:progress="0"
android:progressDrawable="@drawable/seekbar_no_visible_progress"
android:thumb="@drawable/seekbar_thumb" <!-- this is an image -->
android:background="@drawable/hos_bar" <!-- this is an image -->
android:paddingLeft="24dp"
android:paddingRight="24dp">
</SeekBar>
Questo funziona in Android 2.1.
In Android 2.2 questo produce un effetto diverso:
Dopo ulteriori indagini (e provare questo con un totale di default SeekBar
ho trovato che la posizione dell'immagine pollice è cambiato da 2.1 a 2.2 La mia modifica al paddingLeft
& paddingRight
non è il problema
- In 2.1, il pollice è centrato attorno all'estremità della barra, con metà del pollice sulla barra e metà della barra.
- In 2.2, il pollice è posizionato all'interno della barra, senza alcuna sovrapposizione. Da qui lo strano modo in cui i valori del padding influenzano il risultato. Questo è quello che stavo cercando di ottenere, ma quando si utilizza un pollice personalizzato, questo effetto non funziona più allo stesso modo.
Penso che ho bisogno di fare una classe Java personalizzato per gestire questo tipo di cose. In questa domanda (Possible to do rounded corners in custom Progressbar progressDrawable?), lo sviluppatore utilizza uno ClipDrawable
per fare una normale barra di avanzamento.
Quale tipo di oggetto estraibile utilizzerei e in che modo, per posizionare correttamente il pollice?
grazie. Ho aggiornato la mia domanda. L'effetto che non voglio ancora rimane (anche sullo SeekBar standard). Vorrei che l'immagine del pollice si adattasse perfettamente ad ogni estremità arrotondata della barra, quando il valore di avanzamento è impostato su 0 o su max. –