2012-03-13 14 views
0

私は1つのImageButtonを持つRelativeLayoutを持っています。 私はこのアイテムの位置パラメータが必要です。それらを取得する方法はわかりません。レイアウトのアイテムの位置を取得する(xとyのパラメータ)

私がしようとしています

ImageButton user = (ImageButton) findViewById(R.id.User); 
int x =user.getTop(); 
int y =user.getLeft(); 

しかし、結果はオールウェイズ0です。

ありがとうございます。

+0

なぜこの位置が必要ですか?あなたは何を達成しようとしていますか? –

+0

実際、私は3つの画像ボタンを持っています。私はスクロールの位置を変更したいと思います。私のスクロールはうまくいきますし、onCreateでは、私はボタンの位置をキャッチしたいと思います。 –

答えて

4

を返すのonCreate()、内の位置を取得しようとしないでくださいを参照してください。

ViewTreeObserver observer = user.getViewTreeObserver(); 
observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
    @Override 
    public void onGlobalLayout() { 
     //in here, place the code that requires you to know the dimensions. 
     //Place your code here 
    } 
} 
0

getTop()およびgetLeft()は、親に対するビューの位置を返します。たとえば、getLeft()が20を返す場合、ビューはその直接の親の左端の右に20ピクセルあることを意味します。ポイント位置の下のhereを参照してください。

user.getParent().getLeft(); 

希望するものを試してみてください。