2009-11-02 14 views
6

Ich muss ein ImageView (oder etwas anderes) innerhalb eines RelativeLayout verschieben. Kennt jemand den richtigen Weg, dies zu tun?ImageView umher bewegen RelativeLayout

+1

Könnten Sie etwas konkreter? Was bedeutet "bewegen"? – CommonsWare

+0

Wie, verschiebe seine x \ y Koordinaten. Zum Beispiel, wenn Sie ein Bild hatten, das größer als die Bildschirmauflösung war und Sie in der Lage sein wollten, es herumzuziehen, um die Teile zu betrachten, die sich außerhalb des Bildschirms befanden. – Joren

Antwort

10

makesure Image ‚s layout_height und layout_width wird auf fill_parent. Dann tun Sie:

Um eine Ansicht zu verschieben, verwenden Sie Matrix. Es ist sehr praktisch.

Matrix matrix = new Matrix(); 

matrix.reset(); 

matrix.postTranslate(x, y); 

imageview.setScaleType(ScaleType.MATRIX); 
imageview.setImageMatrix(matrix); 
+0

Denken Sie daran, das ImageView android: scaleType = "matrix" in xml zu setzen, wenn Sie dies verwenden und die Ansicht zur Mitte/Anfangsposition zurückbringen möchten (wie bei einem Joystick), andernfalls wird es versetzt, wenn es nicht gesetzt ist. – TouchBoarder

1

mImageView.scrollBy (xOffset, yOffset);

+0

Bitte kommentieren Sie Ihren Code. – CSchulz

0

Es ist sehr einfach. Sie können onTouchListener Ereignis eines beliebigen Steuerelements implementieren und seine X-, Y-Position wie ein neues LayoutParams setzen seine x, y und zuweisen, um anzuzeigen, wie view.setLayoutParam(layoutParams); es die Ansicht ziehen wird.

2

das ich arbeitete gefunden:

imageview.layout(l,t,r,b); 
Verwandte Themen