2012-12-07 41 views
19

我在我的框架佈局上附加了一個imageview。在這裏,我想讓我的imageview中心座標。我將使用相同的座標在下一個佈局中設置我的imageview。請告訴我如何獲得我imageview的中心座標。如何在android中獲取我的視圖的中心x,y?

在此先感謝

+1

視圖創建完成後?你有什麼嘗試? –

回答

46

的ImageView的中心將是

centreX=imageView.getX() + imageView.getWidth()/2; 
centreY=imageView.getY() + imageView.getHeight()/2; 

但要確保你把它叫做ImageView的創建

+0

似乎getX()和getY()不能用於api級別低於11時 – RxRead

+0

如果imageView被縮放怎麼辦? – isaiasmac

+1

此解決方案僅相對於父視圖。如果你希望它是全球性的,你應該使用getLocationOnScreen或getLocationInWindow方法 – Nativ

2

後試試這個:

ImageView my_image = (ImageView) findViewById(R.id.my_imageView); 

Rect rectf = new Rect(); 
my_image.getLocalVisibleRect(rectf); 

Log.d("WIDTH  :",String.valueOf(rectf.width())); 
Log.d("HEIGHT  :",String.valueOf(rectf.height())); 
Log.d("left   :",String.valueOf(rectf.left)); 
Log.d("right  :",String.valueOf(rectf.right)); 
Log.d("top   :",String.valueOf(rectf.top)); 
Log.d("bottom  :",String.valueOf(rectf.bottom)); 

希望這幫助你。

謝謝。

3

您可以使用getPivotX()getPivotY(),它始終保持在視圖中心甚至旋轉視圖。

+0

添加一些解釋和回答這個答案如何幫助OP在修復當前問題 –

+0

@aiueoH:是否有可能獲得中心? – DKV

2

正如@aiueoH提到的那樣,您可以使用getPivotX() and getPivotY()

嘗試使用此尋找中心的座標:

int centreX = view.getPivotX()/2; 
int centreY = view.getPivotY()/2; 
0

如果你想在其他視圖的中心對齊視圖,則您可以使用此 -

float center_x = parent_view.getX() + parent_view.getWidth()/2 - child_view.getWidth()/2; 

,然後顯然是在利用 -

child_view.setX(center_x); 
相關問題