2009-11-02 71 views
6

我需要在RelativeLayout内移动一个ImageView(或其他任何东西)。有没有人知道这样做的正确方法?在RelativeLayout中移动ImageView

+1

你能成为一个更具体一点? “移动”是什么意思? – CommonsWare

+0

像,移动它的x \ y坐标。例如,如果您的图像大于屏幕分辨率,并且希望能够拖动它以查看屏幕外的部分。 – Joren

回答

10

Makesure ImageView的layout_heightlayout_width设置为FILL_PARENT。然后做:

要移动视图,使用矩阵。这非常方便。

Matrix matrix = new Matrix(); 

matrix.reset(); 

matrix.postTranslate(x, y); 

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

记得在xml中设置ImageView android:scaleType =“matrix”,如果你打算使用它并将视图返回到中心/开始位置(如操纵杆手柄),否则如果没有设置它将得到偏移量。 – TouchBoarder

1

mImageView.scrollBy(X偏移,Y偏移);

+0

请评论你的代码。 – CSchulz

0

这很容易。你可以实现你想要的任何控件的onTouchListener事件,并设置它的x,y位置,如创建一个新的LayoutParams设置它的x,y并指定查看为view.setLayoutParam(layoutParams);它将拖动视图。

2

这个我发现工作:

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