1 POINT BẰNG BAO NHIÊU CM
Hiểu về đơn vị khẳng định độ dài khi trình diễn layout, lúc vẽ canvas trong Android, biến đổi qua lại giữa các đơn vị px, dp, pt … xác định thông tin màn hình hiện thị như mật độ điểm ảnh, chiều cao, chiều rộng
Kích thước màn hình
Màn hình hiện đại dù hình ảnh rất mịn mạng, nhưng thực tế được tạo nên từ hàng ngàn những điểm siêu nhỏ, mỗi điểm bé dại đóđược gọi gọi là điểm ảnh pixel ký kết hiệu là px, chúng bố trí tạo ra một lưới các điểm ảnh.Bạn vẫn xem: 1 point bằng bao nhiêu cm




Vì dụ vào XML trình bày layout
Ví dụ trong: values/dimens.xml
16dp 14sp 100px 20ptViệc sự dụng 1-1 vị ra sao do ý ưa thích của bạn, mặc dù để bảo đảm an toàn độc lập về thiết bị thì nên dùng dptrong trình bày đơn vị tương quan đến layout, như kích thước, margin, padding, width, height … sử dụng sp đến cơ chữ.
Sử dụng các đơn vị trong game android – Thông tin màn hình hiển thị thiết bị
Sử dụng DisplayMetrics để biết tin tức hiện thị trên màn hình hiển thị thiết bị
DisplayMetrics (android.util.DisplayMetrics) là lớp chứa những hằng số, phương thức cho mình biết tin tức về screen thiết bị, cấu hình hiện thị.Để đã đạt được một DisplayMetrics rất có thể làm như sau:
Trong các Activity
DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics);Khi đã tất cả Context
DisplayMetrics metrics = context.getResources().getDisplayMetrics()DisplayMetrics cung cấp các ở trong tính
density | Mật độ ngắn gọn xúc tích (tương quan liêu DPI với PPI) |
densityDpi | chính là DPI |
heightPixels, widthPixels | Lấy chiều cao, chiều rộng hiện thị theo px |
scaledDensity | Tỷ lệ mang lại font chữ (đơn vị sp), scaledDensity hay là bởi với density, trừ khi người tiêu dùng điều chỉnh |
xdpi, ydpi | Số px trong 1 inch đúng chuẩn theo chiều X (ngang), chiều Y |
Chuyển thay đổi giữa các đơn vị
Nhiều ngôi trường hợp bạn muốn chuyển đổi quý hiếm theo đơn vị chức năng này sang quý hiếm theo đơn vị chức năng khác trong lập trình Android
Chuyển từ DP quý phái PX
public static int convertDpToPixels(float dp, Context context) int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics()); return px;Chuyển từ bỏ SP lịch sự PX
public static int convertSpToPixels(float sp, Context context) int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, context.getResources().getDisplayMetrics()); return px;Từ px tính ra dp
dp = (kích_thước_theo_pixel * 160) / densityNgoài ra chúng ta cũng có thể khai làm giá trị 1 đơn vị chức năng trong values/dimens.xml rồi đọc quý giá đó, để tìm hiểu 1 đơn vị chức năng mô tả tất cả bao nhiêu pixel.Ví dụ vào values/dimens.xml thêm các dòng:
1dp1sp1pt1in1mmint sizeInPixel = context.getResources().getDimensionPixelSize(R.dimen.one_unit_dp);
Mật độ màn hình hiển thị và khoáng sản trong dự án Adnroid
Mật độ màn hình density chính là tỷ tệ tượng quan giữa số point và pixel, để lấy được quý giá này trong android có đoạn code sau:
float density = context.getResources().getDisplayMetrics().density; if (density == 0.75) //Màn hình LDPI else if (density == 1) //Màn hình MDPI else if (density == 1.5) //Màn hình HDPI else if (density == 2) //Màn hình XHDPI else if (density == 3) //Màn hình XXHDPI else if (density == 4) //Màn hình XXXHDPI Chính từ giá trị tỷ lệ này, khi xây dựng các tài nguyên như hình ảnh, các ảnh có lưu lại trong folder trùng với tên screen tương ứng, khi ứng dụng chạy nó sẽ tìm về ldpi mdpi hdpi xhdpi xxhdpi xxxhdpi nodpi tvdpi tài nguyên cân xứng với màn hình
Chú ý, ảnh lưu trong folder-nodpi đã vẽ đúng kích cỡ pixel ảnh, tương ứng số pixel màn hình