2011-04-09 9 views
10

Je me demandais si quelqu'un avait du code, ou s'il connaissait un endroit qui avait du code pour créer un curseur à double poignée. Exemple: enter image description hereCurseur à double poignée android

Je cherche à faire quelque chose de similaire en utilisant un double curseur pour rechercher une gamme d'âges sur un tableau de temps, comme dans la photo

Merci à l'avance

Répondre

8

J'ai réussi à le construire moi-même ... l'idée que j'ai suivie était différente des réponses ci-dessus. J'ai créé quelques éléments qui peuvent être traînés sur l'écran avec le doigt, et j'ai fixé la position Y de sorte qu'il ne peut que se déplacer de gauche à droite. Après cela, j'ai généré des rectangles qui signifient la progression (entre les boutons et en dehors d'eux). La bonne chose à propos de cette technique est que vous pouvez facilement personnaliser le curseur pour être vertical ou horizontal, ou si vous voulez mettre une image personnalisée en arrière-plan. La source est dans le lien ci-dessous, et si quelqu'un a des questions s'il vous plaît demander. lien: eclipse project

small resolution landscape

small resolution portrait

high resolution landscape

+0

Avez-vous configuré un référentiel quelque part en plus du lien de téléchargement? – JJD

+1

désolé pour la réponse tardive; Je l'ai téléchargé sur github: https://github.com/ovidiu-birgu/dual-knob-slider –

1

J'ai regardé à travers la Widgets package et incroyablement, l'ADT n'a aucun contrôle de curseur! Cela vous met évidemment dans une position désavantageuse car il n'y a rien de déjà mis en œuvre pour que vous puissiez l'étendre ou le modifier.

Cependant, il existe ce guide sur le composant hacking together a custom slider component out of a ProgressBar. Cela pourrait être votre solution. L'auteur remplace la méthode onTouchEvent pour définir la valeur de la barre de progression en fonction des coordonnées tactiles. Très intelligent. Cependant, comme une barre de progression ne peut afficher qu'une seule valeur, il est seulement possible d'afficher la limite inférieure ou supérieure en utilisant une seule barre de progression.

Ma suggestion est de créer un composant composé qui a une barre de progression toujours à 0% et une autre barre de progression qui est toujours à 100%. La deuxième barre est superposée à la première et ses coordonnées et sa largeur sont définies de sorte que son bord gauche représente la limite inférieure (x) et le bord droit la limite supérieure (x + largeur). Votre onTouchEvent détectera si les coordonnées tactiles sont plus proches de la limite inférieure ou supérieure, puis commencera à ajuster cette limite jusqu'à ce qu'elle soit relâchée. Lorsque les limites changent, il vous suffit de repositionner et redimensionner la deuxième barre. Pourvu que vous puissiez positionner les composants absolument et au-dessus des autres composants, cela devrait être génial!

+3

Ce n'est pas tout à fait vrai. Il y a un curseur, mais ça s'appelle SeekBar: http://developer.android.com/reference/android/widget/SeekBar.html – alopix

+1

Eh bien, eh bien! Ne le croiriez-vous pas? Ils en ont créé un après tout, mais ils ont décidé de lui donner un nom que personne ne reconnaîtrait, au lieu de l'appeler 'Slider'. Ce qui est encore plus amusant, c'est qu'il étend ProgressBar, tout comme l'exemple piraté. – BoffinbraiN

+0

Vous étiez sur la bonne voie en prolongeant le ProgressBar +1 :-) –

2

Vous pourriez essayer et étendre le AbsSeekBar et jetez un oeil à la seule-thumbed-SeekBar comment cela fonctionne.

+0

Ennuyeux comment ils n'ont pas utilisé un nom propre :-) Je vais certainement jeter un oeil à cela. +50 pour venir avec la suggestion. –

+0

Allez-vous faire un tel SeekBar double-pouce et le libérer en tant que composant d'interface utilisateur?Serait génial, parce que je (et je suppose que beaucoup d'autres aussi) aurait besoin d'un tel composant aussi;) – alopix

+0

@ Mark'pxr'Mooibroek Comme vous l'avez dit "si je le rend malade poster la source sur mon blog p-xr.com" Avez-vous fait cela? –

4

Avez-vous vu le range-seek-bar. On dirait que cela fonctionnerait parfaitement.

Screenshot of range-seek-bar

+0

aucune source ou binaires pour cela – spy

Questions connexes