android faites glisser affichage lisse
J'ai à glisser quelques points de vue sur l'écran. Je suis de modifier leur position en changeant en haut et à gauche de leur mise en page des paramètres de mouvement sur ACTION_MOVE de toucher l'auditeur. Est-il possible de "glisser" des éléments plus lisse? Car tis sorte de "glisser" est pas lisse du tout... Voici le code
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
dx = (int) motionEvent.getX();
dy = (int) motionEvent.getY();
break;
case MotionEvent.ACTION_MOVE:
int x = (int) motionEvent.getX();
int y = (int) motionEvent.getY();
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) view.getLayoutParams();
int left = lp.leftMargin + (x - dx);
int top = lp.topMargin + (y - dy);
lp.leftMargin = left;
lp.topMargin = top;
view.setLayoutParams(lp);
break;
}
return true;
}
essayez d'utiliser mon code ici: stackoverflow.com/a/18806475/878126 je pense que c'est tout à fait lisse.
Android Déplaçable Vue
Je viens de mettre en ligne une vidéo tutoriel sur Youtube sur la façon de faire toute la vue déplaçable avec seulement un simple assistant de classe. Regarde ça: youtu.être/licui_5_iLk
Android Déplaçable Vue
Je viens de mettre en ligne une vidéo tutoriel sur Youtube sur la façon de faire toute la vue déplaçable avec seulement un simple assistant de classe. Regarde ça: youtu.être/licui_5_iLk
OriginalL'auteur Buda Gavril | 2011-12-16
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser motionEvent.getRawX() et motionEvent.getRawY() au lieu de getY et getX
OriginalL'auteur Marylia Gutierrez
Vous n'avez pas besoin d'utiliser LayoutParameters pour faire glisser. Vous pouvez le faire simplement en paramètre les coordonnées X et Y de la vue. Vous pouvez en lire plus sur ce ici.
Vous pouvez faire quelque chose comme cela.
mais pourquoi devrions-nous ajouter le delta n'est pas le point de vue censés se déplacer à la nouvelle position du pointeur, sans que l'espace.
OriginalL'auteur Ajit Singh
La raison de la non-lisse déplacer, c'est la valeur entière de leftMargin et topMargin.
Pour un déménagement en douceur position du flotteur.
Cette pourrait aider.
OriginalL'auteur Andrei Aulaska
Il serait utile de voir comment vous traitez vos ACTION_MOVE événements.
Êtes-vous en utilisant tous les points à l'aide de l'événement.getHistorical() la méthode?
Si cela ne vous donne pas un plus glisser, autre idée pourrait être d'interpoler des points sur le chemin. Je crois qu'il y aura un compromis entre la réalisation de la fluidité du mouvement et la réponse rapide pour toucher de l'utilisateur. HTH.
Êtes-vous à l'aide de glisser à l'intérieur d'un ScrollView?@gabi
OriginalL'auteur Sameer
Vous devriez le tour de votre ints, également à l'aide de marges ne va pas être très lisse, utiliser une mise en page différente et définir les coordonnées X et Y en fonction des dimensions de l'écran.
OriginalL'auteur Gerard