Trong Android, làm thế nào tôi có thể nhận được kích thước của cửa sổ ứng dụng? Tôi không tìm kích thước màn hình vật lý, nhưng kích thước thực tế của cửa sổ ứng dụng trên màn hình. Ví dụ. thường những gì còn lại sau khi bạn lấy đi thanh thông báo, các nút cảm ứng mềm, v.v.Tôi làm cách nào để có được kích thước cửa sổ ứng dụng Android chứ không phải kích thước màn hình thực?
Trả lời
Nếu bạn muốn kích thước cửa sổ ứng dụng, bạn có thể gọi yourview.getHeight() và yourview.getWidth(); Nhưng quan điểm phải được rút ra cho rằng để làm việc.
Nếu bạn muốn để có được chiều cao trước khi nó rút ra bạn có thể làm điều này:
https://stackoverflow.com/a/10134260/1851478
Có rất nhiều trường hợp khác nhau của màn hình/xem đo mặc dù, vì vậy nếu bạn có thể cụ thể hơn về "kích thước cửa sổ ứng dụng thực tế", đây có phải là ứng dụng của bạn không? Hoặc ứng dụng màn hình chính ?, một số ứng dụng khác?
Nếu bạn muốn không gian có thể sử dụng trừ trang trí (thanh trạng thái/nút mềm), bạn có thể tấn công ngược lại, ví dụ đo kích thước màn hình thực tế (các phương pháp khác nhau theo API), và sau đó trừ chiều cao của thanh trạng thái.
Ví dụ hiển thị độ cao:
((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getHeight();
thanh trạng thái height:
Rect rectgle= new Rect();
Window window= getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
int StatusBarHeight= rectgle.top;
Hoặc
int statusBarHeight = Math.ceil(25 * context.getResources().getDisplayMetrics().density);
Nhiều cách khác nhau để làm điều này.
Chắc chắn cần thêm thông tin từ bạn để cung cấp câu trả lời chính xác hơn.
này cũng khá đơn giản:
Rect windowRect = new Rect();
yourView.getWindowVisibleDisplayFrame(windowRect);
int hWindow = windowRect.bottom - windowRect.top;
int wWindow = windowRect.right - windowRect.left;
Cảm ơn, kích thước hoạt động của riêng tôi nó tôi sau đó. Chiều rộng/chiều cao của chế độ xem gốc sẽ làm điều đó cho tôi nhưng khi bạn nói cần xem trước tiên. –
Thật tuyệt, liên kết mà tôi cung cấp sẽ làm điều đó cho bạn, nhưng bạn có thể bỏ qua phần ẩn sau khi đo. Hoặc chỉ cần gọi .getHeight() và .getWidth() sau khi xem được vẽ (ví dụ trong một hoạt động bạn đã gọi setContentView (R.layout.yourview); – logray
"Nếu bạn muốn lấy chiều cao trước khi nó được vẽ, bạn có thể làm điều này: "- Sau đó, bạn cung cấp liên kết tới một số mã chỉ có thể xác định kích thước SAU KHI chế độ xem đã được tăng cao. – AndroidDev