10
votes

Obtenir la position de ImageView sur la mise en page Android

Aidez-moi s'il vous plaît, je veux obtenir la position de ImageView sur une mise en page.

Entrez la description de l'image ici


0 commentaires

5 Réponses :


16
votes
x = imageViewObject.getLeft();
y = imageViewObject.getTop();
Hope, it help you!

3 commentaires

n'a pas fonctionné pour moi. Tout retourné zéro. (Utilisé avec le bouton, pas imageview, mais cela ne devrait pas faire la différence.)


@mathheadincLouds ne fonctionne pas pour moi non plus. Avez-vous déjà eu un travail?


Toujours pas de solution? C'est 0 pour moi aussi



1
votes

Position Signification X et Y et Hauteur et largeur?

Cette mise en page est une vue, cette vue a ces propriétés.


2 commentaires

Je souhaite obtenir un emplacement actuel sur la vue des moyens X et Y, afin que je puisse animer de cette position à cette position.


Regardez les méthodes disponibles dans la classe d'affichage.



7
votes

au moment de l'exécution Vous pouvez obtenir l'emplacement de chaque fichier objet (ceci inclut mise en page aussi) avec

Position gauche de l'objet d'affichage Getleft ()

Position supérieure d'objet d'affichage gettop ()

Position droite de l'objet d'affichage getdright ()

Position inférieure de l'objet Vue Getbottom ()

Même vous pouvez obtenir l'emplacement avec

getLocationScreen (int [])


0 commentaires

7
votes

Vous pouvez utiliser ceci avec getLocationScreen (int [])


1 commentaires

ne fonctionne pas pour moi. mon image avec est dans un relativelaoyout et se rapporte avec un bouton du haut et aligne avec la droite



0
votes

Le code ci-dessous fonctionne pour que je reçois le point d'origine, j'ai utilisé la variable booléenne globale déplacé code> pour trouver la valeur une fois dans la méthode ouetch code> v.getx () code> et ... gety () code> obtient la valeur de mon imageview code> Objet Je suis exécuté sur mon fichier APK sur un périphérique et cela fonctionne parfaitement. J'espère que cela aide

  joystick.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if(moved){
                moved = false;
                xOrigin = v.getX();
                yOrigin = v.getY();
                mode.setText(Float.toString(xOrigin));
                challenge.setText(Float.toString(yOrigin));
            }
            mode.setText(Float.toString(v.getX()));
            challenge.setText(Float.toString(v.getY()));
            switch (event.getActionMasked()) {
                case MotionEvent.ACTION_DOWN:
                        xCoOrdinate = v.getX() - event.getRawX();

                    yCoOrdinate = v.getY() - event.getRawY();
                    //mode.setText(Float.toString(v.getX()));
                    //challenge.setText(Float.toString(v.getY()));
                    break;
                case MotionEvent.ACTION_MOVE:
                    v.animate().x(event.getRawX() + xCoOrdinate).y(event.getRawY() + yCoOrdinate).setDuration(0).start();
                    if(v.getX() < xOrigin -50){
                        v.animate().x(xOrigin -50).setDuration(0).start();
                    }
                    else if(v.getX() > xOrigin +50) {
                        v.animate().x(xOrigin +50).setDuration(0).start();
                    }
                    if(v.getY() < yOrigin -50){
                        v.animate().y(yOrigin -50).setDuration(0).start();
                    }
                    else if(v.getY() > yOrigin +50) {
                        v.animate().y(yOrigin +50).setDuration(0).start();
                    }
                    break;
                default:
                    v.setX(xOrigin);
                    v.setY(yOrigin);
                    mode.setText(Float.toString(xOrigin));
                    challenge.setText(Float.toString(yOrigin));
                    return false;
            }
            return true;
        }
    });


0 commentaires