Android画面の座標はどのように機能しますか?


154

私はAndroid Animationを使用していますが、Androidの座標系が非常にわかりにくいので、Androidで座標がどのように機能するかについてこの質問をします。あるビューを別のビューに移動するためにこの画像をフォローしていますが、機能していないようです:

画像

回答:


294

ここに画像の説明を入力してください

この画像は両方の向きを示しています(横/縦)

MaxXとMaxYを取得するには、次に進みます。

Androidデバイスの画面座標の場合、以下のコンセプトが機能します。

Display mdisp = getWindowManager().getDefaultDisplay();
Point mdispSize = new Point();
mdisp.getSize(mdispSize);
int maxX = mdispSize.x; 
int maxY = mdispSize.y;

編集:-** ** 13より古いAndroid APIレベルをサポートするデバイス用。以下のコードを使用できます。

    Display mdisp = getWindowManager().getDefaultDisplay();
    int maxX= mdisp.getWidth();
    int maxY= mdisp.getHeight();

(x、y):-

1)(0,0)は左上隅です。

2) (maxX、0)は右上隅です

3)(0、maxY)は左下隅です

4)(maxX、maxY)は右下隅です

ここでmaxXとmaxYは、画面の最大の高さと幅(ピクセル単位)で、上記のコードで取得しています。


私たちが持っていればViewlayout_width="1" layout_height="1"、それは、(0,0)、左上があることを意味し、右下には、(1、1)です?う これは、View幅が2、高さが2であることを意味しませんか?矛盾。
riwnodennyk 2014

@AAnkitは、自信を持っていただけますか?これは両方の画面の向き(縦向きと横向き)に有効です。画面の向きの変更は(0,0)->左上隅に影響します。(maxX、0)->右上隅(0、maxY)->左下隅(maxX、maxY)->右下隅
Qadir Hussain

画像ありがとうございます。それは本当に私の命を救った。
シャールシェリフ

19

Android APIレベル13の場合、これを使用する必要があります。

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int maxX = size.x; 
int maxY = size.y;

次に、(0,0)は画面の左上隅、(maxX、maxY)は画面の右下隅です。

画面サイズの「getWidth()」はAPI 13以降廃止されました

さらに、getwidth()getHeight()android.view.View クラスのメソッドです。そのため、JavaクラスがViewクラスを拡張する場合、windowManagerのオーバーヘッドはありません。

          int maxX=getwidht();
          int maxY=getHeight();

それと同じくらい簡単です。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.