Tôi đã sử dụng bố cục gốc của mình, vấn đề là bạn không thể lấy thông tin này (chiều rộng và chiều cao) trong các phương thức onCreate/onStart/onResume khi chúng chạy lần đầu tiên.
Bất kỳ khoảnh khắc sau đó, kích thước có thể được lấy từ bố cục gốc của bạn (LinearLayout/FrameLayout/TableLayout/etc), trong trường hợp của tôi, tôi đã sử dụng FrameLayout:
FrameLayout f = (FrameLayout) findViewById(R.id.layout_root);
Log.d(TAG, "width " + f.getMeasuredWidth());
Log.d(TAG, "height " + f.getMeasuredHeight());
hay:
FrameLayout f = (FrameLayout) findViewById(R.id.layout_root);
Log.d(TAG, "width " + f.getRight());
Log.d(TAG, "height " + f.getBottom());
Đã chỉnh sửa từ đây --------------------------------------------- -----------
Tôi đã tìm được cách để có được thông tin này trên phương thức onCreted, nhưng chỉ khi bạn có thêm một hoạt động . Trong trường hợp của tôi, tôi có một hoạt động chính gọi là hoạt động thứ hai.
Trên main_activity trước khi tôi gọi second_activity, bằng Itent mới, tôi có thể thêm thông tin bổ sung cho second_activity. Đây là mã bạn cần trên hoạt động đầu tiên:
Intent i = new Intent(this, SecondActivity.class);
i.putExtra("width", f.getMeasuredWidth());
i.putExtra("height", f.getMeasuredHeight());
startActivity(i);
Sau đó vào hoạt động thứ hai của bạn, bạn có thể lấy thông tin này vào phương pháp onCreate của hoạt động thứ hai của bạn làm điều đó:
int width = getIntent().getExtras().getInt("width");
int height = getIntent().getExtras().getInt("height");
Tại sao bạn muốn làm điều đó? Trong hầu hết các trường hợp, điều này là không cần thiết và hầu hết những thứ bạn có thể cần nó có thể được thực hiện với các kỹ thuật tốt hơn đi kèm với android để xử lý các kích thước màn hình khác nhau. – Janusz
Tôi thực sự cần phải biết có bao nhiêu điểm ảnh mà hoạt động có chiều rộng và chiều cao của nó. Nó phải làm với độ chính xác bản đồ. – Tsimmi
Bạn đang sử dụng chế độ xem bản đồ hoặc chế độ xem tùy chỉnh để hiển thị bản đồ? – Janusz