1. ホーム
  2. android

[解決済み] ルートレイアウトを基準としたViewの座標の取得

2022-04-28 23:32:36

質問

AndroidのActivityのルートレイアウトから、Viewのx、yの相対位置を取得できますか?

どのように解決するのですか?

これは1つの解決策ですが、APIは時代とともに変化しており、他の方法もあるかもしれませんので、他の答えも確認してください。 あるものはより速く、別のものはより簡単にと主張しています。

private int getRelativeLeft(View myView) {
    if (myView.getParent() == myView.getRootView())
        return myView.getLeft();
    else
        return myView.getLeft() + getRelativeLeft((View) myView.getParent());
}

private int getRelativeTop(View myView) {
    if (myView.getParent() == myView.getRootView())
        return myView.getTop();
    else
        return myView.getTop() + getRelativeTop((View) myView.getParent());
}

うまくいったら教えてください。

各親コンテナから再帰的にトップとレフトの位置を追加するだけでよいはずです。 また、この実装を Point ということです。