Android

Lấy về width và height của màn hình thiết bị Android

Giới thiệu

Đôi lúc chúng ta cần lấy về width và height của màn hình Android để tính toán Animation, set vị trí của các view mà chúng ta mong muốn và nhiều trường hợp khác nữa. Việc lấy về width và height không đơn giản chỉ là gọi getWidth và getHeight như những View trong Android mà phải thông qua đối tượng WindowManager.

Lấy về kích thước width và height của màn hình Android

Bạn hoàn toàn lấy về width và height của màn hình Android thông qua đối tượng WindowManager như sau:

Nếu bạn viết trong Activity

Mặc định thì activity đã có sẵn phương thức getWindowManager cho chúng ta lấy ra đối tượng WindowManager một cách dễ dàng.

Từ WindowManager chúng ta lấy ra đối tượng Display thông qua phương thức getDefaultDisplay. Sau khi đã có đối tượng Display thì việc tiếp theo chỉ việc gọi phương thức getSize với đối số truyền vào là một Point object. Đối tượng này sẽ giữ width và height của màn hình android sau khi gọin phương thức getSize với

  • size.x là width (chiều rộng) của màn hình.
  • size.y là height (chiều cao) của màn hình.

Nếu bạn viết ngoài Activity

Khác với cách ở trên. Nếu bạn đang viết mã ở ngoài activity thì chúng ta phải lấy ra đối tượng WindowManager theo một cách khác. Và sau đó mới có thể gọi phương thức getDefaultDisplay().

Sau đó gọi các phương thức sau để lấy về width và heightheight

Tổ chức thành một class

Việc lấy ra width và height được sử dụng khá nhiều trong một project. Nên cách tốt nhất là chúng ta xây dựng nó thành các phương thức trong một class để thuận tiện cho chúng ta trong quá trình viết mã thay vì mỗi lần lấy width và height đều gọi các đoạn mã khá dài dòng ở hai phần trên.

Tôi tạo class có tên là AndroidDeviceHelper.java có nội dung như sau:

Và mỗi lần sử dụng chúng ta chỉ đơn giản gọi như sau:

  • AndroidDeviceHelper.getWidthScreen(context) nếu lấy về width.
  • AndroidDeviceHelper.getHeightScceen(context) nếu lấy về height.

1 thought on “Lấy về width và height của màn hình thiết bị Android”

  1. anh cho em hỏi, em có 1 đoạn text dài hiển thị lên viewpager, ví dụ tùy vào màn hình từng thiết bị, 1 cái thì có 2 slide nhưng cái kia có 3 slide. Em phải làm thế nào ạ. Thanks!!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.