Rect、RectF矩形クラス

3385 ワード

1:Rect紹介
Rect、RectFは矩形クラスを表し、4つの座標(left,top,right,bottom)からなる矩形で、androidでは多くの場所で矩形が使われています.彼を用いて位置を決定するandroidでよく用いられる手法(0,0100100)は、原点から長幅100100の矩形(10,30110100)を構成する長さ(110-10)幅(100-30)の矩形を構成することを示す.
2:Rect関連メソッド
  • 1:コンストラクション関数new Rect()空の長方形オブジェクトを作成し、new Rect(Rect r)新しい長方形オブジェクトを作成するために長方形を指定new Rect(int left,int top,int right,int bottom)4座標を指定矩形オブジェクトを作成する
  • .
  • 2:方法紹介
  • 長方形の中心点を取得
    int centerX()、int centeY()、取得したint値float exactCenter X()、float exactCenter Y()は、同じくfloatタイプの値を取得します.
    座標が矩形内であるか否かを判断する
    boolean contains(int x,int y):与えられたxyが矩形内にcontains(int left,int top,int right,int bottom)が与えられた4点が矩形内にcontains(Rect r)が与えられた矩形内にあるかどうか、または現在の矩形サイズに等しいか
    既存の長方形を文字列で表す
    String flattenToString()、Rect unflattenFromString(String s)flattenToString()は、既存の長方形を1つの文字列で表します.この文字列には、4つの座標unflattenFromString(String str):長方形を文字列で取得する
    Rect rect=new Rect(10,10,110,100); //      
    String s= rect.flattenToString();//  flattenToString()       
    Rect news=Rect.unflattenFromString(s);//                

    toShortString():flattenToStringと同様に返すだけの文字列形式が異なるtoShortString()戻りは[10,10][10,10]形式、flattenToStringは10,10 10 10 10 10形式
    長方形の幅を取得
    int height()、int width()
    長方形の元の座標を変更して内部移動
    inset(int dx, int dy)
    矩形new Rect(0,0300300,)がinset(100,0)を実行した後に矩形が(100,0201000)という方法はdxを意味する:矩形のlefで、rightが矩形内部に100元leftずつ移動するのは0、dxが100であるため矩形内で100、0+100=100元rightが300、dxが100で矩形内で100300-100=200のまとめ:矩形内移動に注意すなわちright点は左に100移動し、右方向に100移動すると矩形外になる.したがってdxは負の数であり、lefとrightが矩形外部に100移動することであり、dyは同じである.
    2つの矩形が交差するか否かを判断し、2つの矩形が交差しているか、または1つが他の1つを含むtrueである
    boolean intersect(Rect r)、boolean intersect(int left, int top, int right, int bottom) boolean intersects(Rect a, Rect b)、intersects(int left, int top, int right, int bottom) boolean setIntersect(Rect a, Rect b)
    矩形がnullかどうかを判断し、座標がnullに設定されていない
    isEmpty ()
    長方形オフセット、長方形を移動しても長方形自体の幅の高さは変わりません
    offset(dx,dy):矩形が元の位置でdx、dy個の画素offsettTo(int newLeft,int newTop)をオフセットするこれは、offsetが元の座標に対してオフセットするのではなく、ソース位置を考慮せずに、例えば現在の座標が(10,10,10,10,10)である場合、offsettTo(100100,10,10)である場合、offsetが元の座標に対してオフセットであるのではなく、直接(100100,10,10,10)になる.offsetでオフセットした場合(110110,10,10)
    既存の長方形の値を設定し、設定後に新しい長方形の値を採用します.値の伝達が正しいことに注意して、2つの方法で検査します.
    set(int left, int top, int right, int bottom)、set(Rect rect)
    Rect rect=new Rect(10,10,310,310);
    rect.set(20,10,300,200);
    canvas.drawRect(rect, paint);
    //           300,  set         280,
    //190              280,190,        

    長方形の値を変更するには、前の年のset(...)メソッドと同じ機能を使用します.
    union(Rect r)、union(int left, int top, int right, int bottom)、 union(int x, int y)
    3:RectFとRect類似Fはfloatを表します!ただ2つの方法が増えただけです!略