Làm thế nào để tọa độ màn hình Android làm việc?


154

Tôi đang làm việc với Android Animationvà tôi thấy hệ thống tọa độ Android khá khó hiểu nên tôi ở đây để hỏi câu hỏi này về cách thức tọa độ hoạt động trong Android. Tôi đang theo dõi hình ảnh này để chuyển chế độ xem này sang chế độ xem khác nhưng có vẻ như nó không hoạt động:

hình ảnh

Câu trả lời:


294

nhập mô tả hình ảnh ở đây

Hình ảnh này thể hiện cả hai hướng (Phong cảnh / Chân dung)

Để có MaxX và MaxY, hãy đọc tiếp.

Đối với tọa độ màn hình thiết bị Android, khái niệm dưới đây sẽ hoạt động.

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

EDIT: - ** ** cho các thiết bị hỗ trợ cấp độ api Android cũ hơn 13. Có thể sử dụng mã bên dưới.

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

(x, y): -

1) (0,0) là góc trên cùng bên trái.

2) (maxX, 0) là góc trên cùng bên phải

3) (0, maxY) là góc dưới bên trái

4) (maxX, maxY) là góc dưới cùng bên phải

ở đây maxX và maxY là chiều cao và chiều rộng tối đa của màn hình tính bằng pixel, mà chúng tôi đã lấy được ở phần mã đã cho ở trên.


Nếu chúng ta có Viewvới, layout_width="1" layout_height="1"điều đó có nghĩa là trên cùng bên trái là (0,0) và dưới cùng bên phải là (1, 1)? Điều đó có nghĩa Viewlà chiều rộng = 2 và chiều cao = 2? Mâu thuẫn.
riwnodennyk

@AAnkit bạn có thể vui lòng xác nhận, điều này hợp lệ cho cả hai hướng màn hình (Chân dung và Phong cảnh), thay đổi hướng màn hình có ảnh hưởng đến (0,0) -> góc trên cùng bên trái. (maxX, 0) -> góc trên bên phải (0, maxY) -> góc dưới bên trái (maxX, maxY) -> góc dưới bên phải
Qadir Hussain

Cảm ơn bạn rất nhiều cho hình ảnh. nó thực sự cứu mạng tôi
Sharl Sherif

19

Đối với API Android cấp 13 và bạn cần sử dụng điều này:

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

Sau đó (0,0) là góc trên cùng bên trái và (maxX, maxY) là góc dưới cùng bên phải của màn hình.

'GetWidth ()' cho kích thước màn hình không được dùng nữa kể từ API 13

Hơn nữa getWidth ()getHeight () là phương pháp android.view.View lớp trong android.So khi lớp java của bạn kéo dài Xem lớp không có các chi phí Chương trình quản lý cửa sổ X.

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

đơn giản vậy thôi.


3

Hình ảnh này sẽ loại bỏ sự nhầm lẫn của mọi người hy vọng được thu thập từ đó .

Phối hợp màn hình Android

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.