Android ProgressBar.setProgressDrawable ne fonctionne qu'une fois?
Dans un sélecteur de couleur, j'ai 3 SeekBars pour la Teinte, la Saturation et la Valeur. L'appel de setProgressDrawable sur ces SeekBars ne fonctionne qu'une fois -- lors de l'initialisation à partir d'onCreate. Lorsque l'utilisateur met à jour la Teinte SeekBar, je tiens à appeler setProgressDrawable pour la Saturation et la Valeur SeekBars, pour montrer à l'utilisateur le choix de couleur de la nouvelle Teinte.
Mais tous les appels à setProgressDrawable (d'après les initiales de onCreate
) cause la SeekBar être effacé.
Comment puis-je mettre à jour le gradient du fond de mon SeekBars basée sur la saisie de l'utilisateur?
OriginalL'auteur Chuck | 2010-05-10
Vous devez vous connecter pour publier un commentaire.
Que j'ai trouvé est que le drawable ne sais pas, c'est la taille lors de setprogressdrawable est appelé. Lorsqu'il est mis en place initialement, il le fait savoir il est de taille. Cela signifie qu'il ya un nouveau drawable ensemble de la seekbar, mais la taille de la drawable est 0, vous ne verrez rien.
La solution est de mettre d'abord les limites de l'actuel drawable, puis définissez la nouvelle drawable, et enfin définir les limites de nouveau:
C'était similaire, mais légèrement différente de celle de la question que j'ai couru dans. Voir stackoverflow.com/questions/6336939/.... Ajouter un commentaire ici, au cas où il permet à quelqu'un un jour
Génial... a Fonctionné pour moi...
De travailler pour moi, j'ai fait ce que vous avez dit et d'ajouter: mySeekBar.setProgress(mySeekBar.getProgress()+1); mySeekBar.setProgress(mySeekBar.getProgress()-1); Faire ce que je force un déplacement, mais rester dans la même position.
De travailler pour moi, j'ai mis des progrès en xml égal à max:
android:max="500" android:progress="500"
OriginalL'auteur toneffectory
Hey j'ai les solutions pour cela, vous devez d'abord définir le drawable à la ProgressBar en appelant setProgresssDrawable(drawable) et seulement ensuite définir la valeur et non pas vice versa. Que vais travailler.
Pour définir un progrès dessinés:
Utiliser un drawable fichier xml comme ceci:
enregistrer dans votre /drawable dossier et de l'utiliser dans le setProgressDrawable(drawable) fonction
J'ai répondu à votre question ci-dessus!
Désolé, cette solution ne résout pas le problème de l'OP. Voir toneffectory réponse.
Cela pourrait ne pas avoir aidé les OP, mais il a sûrement aidé moi.
dmon, je suis content que ça a aidé!
OriginalL'auteur Gooner