Có rất nhiều trường hợp, chúng ta nên tạo chế độ xem động hơn là tạo chế độ xem trong XML. Trong trường hợp đó, chúng ta cần lấy các kích thước của một khung nhìn. Vì vậy, đây là một giải pháp đơn giản để lấy kích thước của một chế độ xem trong android.
Để có được chiều cao của bất kỳ chế độ xem nào, hãy sử dụng mã sau
int width =view.getMeasuredHeight ();
Để có được chiều rộng của bất kỳ chế độ xem nào, hãy sử dụng mã sau
int height =view.getMeasuredWidth ();
Trước khi lấy chiều rộng và chiều cao, chúng ta nên chỉ định số đo mặc định cho chế độ xem như hình dưới đây
view.measure (0, 0);
Trong chế độ xem mã ở trên giống như textview, editText, button ..etc. Dưới đây là một ví dụ minh họa về cách tìm kích thước của một chế độ xem trong android
Bước 1 - Tạo một dự án mới trong Android Studio, đi tới Tệp ⇒ Dự án Mới và điền tất cả các chi tiết cần thiết để tạo một dự án mới.
Bước 2 - Thêm mã sau vào res / layout / activity_main.xml.
xml version ="1.0" encoding ="utf-8"?>
Trong ví dụ trên, chúng ta không có bất kỳ chế độ xem nào, chúng ta đã tạo chế độ xem gốc / chế độ xem cha. chúng ta có thể thêm chế độ xem con trong java như hình dưới đây -
nhập android.os.Bundle; nhập android.support.constraint.ConstraintLayout; nhập android.support.v7.app.AppCompatActivity; nhập android.view.Gravity; nhập android.widget.LinearLayout; nhập android.widget.TextView; import android.widget.Toast; public class MainActivity mở rộng AppCompatActivity {ConstraintLayout bindingLayout; @Override được bảo vệ void onCreate (Gói đã lưuInstanceState) {super.onCreate (saveInstanceState); setContentView (R.layout.activity_main); TextView msg =new TextView (this); msg.setText ("văn bản mẫu để kiểm tra phần bổ sung"); msg.setPadding (10, 10, 10, 10); msg.measure (0, 0); LinearLayout.LayoutParams params =new LinearLayout.LayoutParams (LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins (5, 15, 0, 0); msg.setLayoutParams (tham số); msg.setGravity (Gravity.CENTER); Bố cục LinearLayout =(LinearLayout) findViewById (R.id.rootview); layout.addView (msg); int width =msg.getMeasuredHeight (); int height =msg.getMeasuredWidth (); Toast.makeText (this, "width" + String.valueOf (width) + "height" + String.valueOf (height), Toast.LENGTH_LONG) .show (); }}
Trong ví dụ trên, chúng ta đã tạo một textview động và thêm các thuộc tính textview như setText (), setPadding (), SetGravity (). Chúng tôi đã cung cấp các thông số bố cục cho textview như được hiển thị bên dưới.
LinearLayout.LayoutParams params =new LinearLayout.LayoutParams (LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins (5, 15, 0, 0); msg.setLayoutP;Bây giờ chúng ta phải nối chế độ xem văn bản vào chế độ xem gốc như hình dưới đây -
LinearLayout layout =(LinearLayout) findViewById (R.id.rootview); layout.addView (msg);Cuối cùng, chúng tôi đã sử dụng getMeasuredHeight (); và getMeasuredWidth (); để tìm chiều cao và chiều rộng của chế độ xem văn bản như được hiển thị bên dưới -
int width =msg.getMeasuredHeight (); int height =msg.getMeasuredWidth (); Toast.makeText (this, "width" + String.valueOf (width) + "height" + String.valueOf (height), Toast .LENGTH_LONG) .show ();Hãy thử chạy ứng dụng của bạn. Tôi giả sử bạn đã kết nối thiết bị Di động Android thực tế với máy tính của mình. Để chạy ứng dụng từ android studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ. Chọn thiết bị di động của bạn làm tùy chọn, sau đó kiểm tra thiết bị di động sẽ hiển thị màn hình mặc định của bạn -
Trong màn hình trên, chúng ta có các kích thước của textview trong Toast.