Comment mettre Android SeekBar progrès dessinés par programmation
J'ai un problème avec un programme définissant les progrès dessinés d'un SeekBar.
Quand je l'ai mis dans le .fichier xml tout fonctionne bien.
<SeekBar
android:id="@+id/sb"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
.....
android:progressDrawable="@drawable/seek_bar"/>
Mais, j'ai un problème lorsque j'essaie de le définir à partir de code comme ceci:
seekBar.setProgressDrawable(getResources().getDrawable(R.drawable.seek_bar));
Arrière-plan dessiné prend alors l'ensemble de la barre de recherche, et je ne suis pas capable de modifier l'état d'avancement à plus tard sur le pouce se déplace, mais les progrès dessinés remplit encore toute la seekbar. Aussi, seekbar perd ses coins arrondis. Il semble que des progrès dessinés sur le haut de la seekbar.
J'ai essayé la solution fournie sur android progressBar ne pas mettre à jour les progrès de la vue/drawable, mais il ne fonctionne pas pour moi.
InformationsquelleAutor Milos Pesic | 2012-05-10
Vous devez vous connecter pour publier un commentaire.
J'ai résolu le problème en utilisant .xml de la forme que du fond de mon SeekBar.
Le complet SeekBar solution qui peut être utilisé par setProgressDrawable() la méthode devrait être comme ceci:
Dans le code, vous pouvez l'utiliser comme ceci:
La réponse donnée ci-dessus est pour l'utilisation de xml, mais juste au cas où quelqu'un voulait le faire par programmation, je l'ai, ci-dessous.
}
Classe ci-dessus est pour le fond de la seekbar (la partie qui existe toujours sous le progrès drawable)
}
Ci-dessus est le progrès dessinés. Un avis c'est un clip drawable. La partie la plus cool ici c'est que je suis en train de le de limites à ce que je veux, le long avec de la couleur. Cela permet pour affiner la personnalisation de votre drawable.
Code ci-dessus utilise personnalisé un drawable pour modifier la barre de recherche. Ma principale raison pour cela est, je vais être en train de modifier l'apparence de l'arrière-plan dessiné, donc il y a des "encoches" (bien que pas encore implémenté). Vous ne pouvez pas faire cela avec un xml défini drawable (au moins pas facilement).
Une autre chose que j'ai remarqué c'est que ce processus empêche la SeekBar est de se faire aussi large que le pouce drawable. Il définit les limites de l'un drawable donc ils ne sont jamais à la hauteur.
J'ai eu des problèmes de changement de chercher et de barres de progression de code avant. Une fois que j'ai eu à charge la drawable deux fois avant qu'il ne prenne effet correctement. Je pense que c'était lié à remplissage après la modification de l'image.
Je suis juste deviner ici, mais essayez de définir le remplissage par la suite avec
et aussi ne pouvait pas faire de mal à l'invalider.
Très hacky et je n'aime pas ça, mais il a résolu quelque chose de similaire pour moi avant
vous pouvez utiliser la version d'android: maxHeight en vous XML, à la limite de fond de la hauteur
et il ne sera pas clip le pouce