39

フレームレイアウトにimageviewを添付しています。ここで、imageviewセンターの座標を取得したいと思います。同じ座標を使用して、次のレイアウトでイメージビューを設定します。イメージビューの中心座標を取得する方法を教えてください。

前もって感謝します

4

5 に答える 5

81

imageViewの中心は

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

ただし、imageViewが作成された後で必ず呼び出してください

于 2012-12-07T07:42:37.940 に答える
9

getPivotX()とを使用することができgetPivotY()、ビューを回転させても常にビューの中心に保持されます。

于 2016-06-20T06:19:21.657 に答える
5

これを試して :

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));

これがお役に立てば幸いです。

ありがとう。

于 2012-12-07T07:56:30.093 に答える
4

@aiueoHが述べたように、を使用できますgetPivotX() and getPivotY()

中心の座標を見つけるためにこれを使用してみてください:

int centreX = view.getPivotX()/2;
int centreY = view.getPivotY()/2;
于 2017-06-26T13:08:29.133 に答える
1

ビューを他のビューの中央に揃えたい場合は、これを使用できます-

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

そして明らかに-を使用して

child_view.setX(center_x);
于 2018-01-08T18:12:33.467 に答える