Rect
は、4つの値を含んでいます。 left
は、矩形の左側のx座標を指定します。
親座標は、ヒット矩形の値が親の座標系で指定されていることを意味します。
夜にオープンフィールドに立って、月を見つめていると想像してください。地球上のあなたの立場は、いろいろな形で表現できます。
あなたのローカル座標系であなたの位置を表した場合、あなたは(緯度/経度)(0、0)に位置します。あなたが歩き回っているとき、あなたのローカル座標系は決して変化しません、あなたは常にあなたのローカル座標系の中心に(0,0)です。
しかし、地球の座標系を使用して自分の位置を表現した場合、(緯度、経度)(16,135)になっている可能性があります。
あなたは地球上に立っているので、地球はあなたの親座標系です。
同様に、ViewはLinearLayoutに含まれることがあります。 LinearLayoutはViewの親であるため、getHitRect()の値はLinearLayoutの座標系で表されます。
一般的な用語で編集
ヒット矩形は、衝突検出のために使用される矩形領域を定義するために使用される用語です。 Androidの場合、ヒット矩形はRect型のインスタンスに過ぎません。
メソッドgetLeft()
などは、Rect内のデータのアクセサにすぎません。したがって、Rectのメンバーは、メソッドを呼び出すことで得られるのと同じ長方形を定義します。
のRectのための一般的な使用シナリオをタップイベントを処理することになります。
//Imagine you have some Rect named myRect
//And some tap event named event
//Check if the tap event was inside the rectangle
if(myRect.contains(event.getX(), event.getY()){
//it's a hit!
}
あなたは、2つの矩形のはお互いに見るために
if(myRect.contains(myRect2)){
//collision!
}
、ヒット矩形と交差するかどうかを確認したい場合があります実際に直接使用されていない、あなたはsee the sourceすることができます。ビューの上、下、左、右は1トンで使用されますが、getHitRect()メソッドは、きちんとしたパッケージでそれらを必要とする人々にそれらのパラメータ(上/下/左/右)を返す利便性のほうがよります。
ありがとう、私の編集をご覧ください。 – JulianSymes
編集していただきありがとうございますが、多少のご質問をお待ちしております。あなたが指すコードは、getHitRect()がgetLeft()、getTop()などで定義された矩形を返すことがあることを示しますが、必ずしもそうではありません。違いは何ですか?私が特に尋ねるのは、意味のある意味論的な意味で、関数が返す矩形です。この関数は、正確な答えがなければ価値がないことに気づくでしょう。私は、関数のドキュメントでは何の振る舞いも指定していないので、何も保証されないので、事実上使用できません。私はそれを避けるだろう。 – JulianSymes