Sự khác biệt giữa các đơn vị đo lường Android là gì?
- px
- nhúng
- dp
- sp
Sự khác biệt giữa các đơn vị đo lường Android là gì?
Câu trả lời:
Từ Tài liệu dành cho nhà phát triển Android :
px
Pixels - tương ứng với các pixel thực tế trên màn hình.
tính bằng
inch - dựa trên kích thước vật lý của màn hình.
1 Inch = 2,54 cm
mm
Millimet - dựa trên kích thước vật lý của màn hình.
Điểm pt - 1/72 inch dựa trên kích thước vật lý của màn hình.
dp hoặc nhúng
Mật độ phụ thuộc Pixels - một đơn vị trừu tượng dựa trên mật độ vật lý của màn hình. Các đơn vị này có liên quan đến màn hình 160 dpi, vì vậy một dp là một pixel trên màn hình 160 dpi. Tỷ lệ dp-pixel sẽ thay đổi theo mật độ màn hình, nhưng không nhất thiết phải theo tỷ lệ trực tiếp. Lưu ý: Trình biên dịch chấp nhận cả "nhúng" và "dp", mặc dù "dp" phù hợp hơn với "sp".
sp
Scale -independent Pixels - điều này cũng giống như các đơn vị dp, nhưng nó cũng được thu nhỏ lại bởi sở thích kích thước phông chữ của người dùng. Bạn nên sử dụng đơn vị này khi chỉ định kích thước phông chữ, vì vậy chúng sẽ được điều chỉnh cho cả mật độ màn hình và tùy chọn của người dùng.
Từ sự hiểu biết về mật độ độc lập trong Android :
+----------------+----------------+---------------+-------------------------------+
| Density Bucket | Screen Density | Physical Size | Pixel Size |
+----------------+----------------+---------------+-------------------------------+
| ldpi | 120 dpi | 0.5 x 0.5 in | 0.5 in * 120 dpi = 60x60 px |
+----------------+----------------+---------------+-------------------------------+
| mdpi | 160 dpi | 0.5 x 0.5 in | 0.5 in * 160 dpi = 80x80 px |
+----------------+----------------+---------------+-------------------------------+
| hdpi | 240 dpi | 0.5 x 0.5 in | 0.5 in * 240 dpi = 120x120 px |
+----------------+----------------+---------------+-------------------------------+
| xhdpi | 320 dpi | 0.5 x 0.5 in | 0.5 in * 320 dpi = 160x160 px |
+----------------+----------------+---------------+-------------------------------+
| xxhdpi | 480 dpi | 0.5 x 0.5 in | 0.5 in * 480 dpi = 240x240 px |
+----------------+----------------+---------------+-------------------------------+
| xxxhdpi | 640 dpi | 0.5 x 0.5 in | 0.5 in * 640 dpi = 320x320 px |
+----------------+----------------+---------------+-------------------------------+
+---------+-------------+---------------+-------------+--------------------+
| Unit | Description | Units Per | Density | Same Physical Size |
| | | Physical Inch | Independent | On Every Screen |
+---------+-------------+---------------+-------------+--------------------+
| px | Pixels | Varies | No | No |
+---------+-------------+---------------+-------------+--------------------+
| in | Inches | 1 | Yes | Yes |
+---------+-------------+---------------+-------------+--------------------+
| mm | Millimeters | 25.4 | Yes | Yes |
+---------+-------------+---------------+-------------+--------------------+
| pt | Points | 72 | Yes | Yes |
+---------+-------------+---------------+-------------+--------------------+
| dp | Density | ~160 | Yes | No |
| | Independent | | | |
| | Pixels | | | |
+---------+-------------+---------------+-------------+--------------------+
| sp | Scale | ~160 | Yes | No |
| | Independent | | | |
| | Pixels | | | |
+---------+-------------+---------------+-------------+--------------------+
Thông tin thêm cũng có thể được tìm thấy trong Tài liệu thiết kế của Google .
dp
không không có chiều dài cơ thể cùng chính xác. (Mặc dù nó rất gần.) Xem bình luận của @ Fraggle về xô. Điều này có nghĩa là 48dp sẽ có kích thước khoảng 8 mm (0,3 inch), nhưng nó có thể thay đổi tới 11mm.
Khá nhiều thứ về điều này và làm thế nào để đạt được sự hỗ trợ tốt nhất cho nhiều màn hình có kích thước và mật độ khác nhau được ghi lại rất rõ ở đây:
Kích thước màn hình Kích thước
vật lý thực tế, được đo bằng đường chéo của màn hình. Để đơn giản, Android nhóm tất cả các kích thước màn hình thực tế thành bốn kích thước tổng quát: nhỏ, bình thường, lớn và cực lớn.Mật độ màn hình
Số lượng pixel trong một vùng vật lý của màn hình; thường được gọi là dpi (số chấm trên mỗi inch). Ví dụ: màn hình mật độ "thấp" có ít pixel hơn trong một vùng vật lý nhất định, so với màn hình mật độ "bình thường" hoặc "cao". Để đơn giản, Android nhóm tất cả các mật độ màn hình thực tế thành sáu mật độ tổng quát: thấp, trung bình, cao, cực cao, cực cao, cực cao và cực cao.Định hướng Định
hướng của màn hình theo quan điểm của người dùng. Đây là phong cảnh hoặc dọc, nghĩa là tỷ lệ khung hình của màn hình tương ứng rộng hoặc cao. Xin lưu ý rằng không chỉ các thiết bị khác nhau hoạt động theo các hướng khác nhau theo mặc định, mà hướng có thể thay đổi khi chạy khi người dùng xoay thiết bị.Độ phân giải
Tổng số pixel vật lý trên màn hình. Khi thêm hỗ trợ cho nhiều màn hình, các ứng dụng không hoạt động trực tiếp với độ phân giải; các ứng dụng chỉ nên được quan tâm với kích thước và mật độ màn hình, như được chỉ định bởi các nhóm kích thước và mật độ tổng quát.Pixel độc lập với mật độ (dp)
Đơn vị pixel ảo mà bạn nên sử dụng khi xác định bố cục UI, để thể hiện kích thước hoặc vị trí bố cục theo cách độc lập với mật độ. Pixel độc lập với mật độ tương đương với một pixel vật lý trên màn hình 160 dpi, đây là mật độ cơ sở được hệ thống giả định cho màn hình mật độ "trung bình". Khi chạy, hệ thống xử lý một cách trong suốt mọi tỷ lệ của các đơn vị dp, khi cần thiết, dựa trên mật độ thực tế của màn hình đang sử dụng. Việc chuyển đổi các đơn vị dp thành pixel màn hình rất đơn giản :px = dp * (dpi / 160)
. Ví dụ: trên màn hình 240 dpi, 1 dp bằng 1,5 pixel vật lý. Bạn phải luôn sử dụng các đơn vị dp khi xác định giao diện người dùng của ứng dụng để đảm bảo hiển thị đúng giao diện người dùng của bạn trên màn hình với mật độ khác nhau.
Nếu bạn nghiêm túc về việc phát triển ứng dụng Android cho nhiều loại thiết bị, bạn nên đọc tài liệu phát triển hỗ trợ màn hình ít nhất một lần. Thêm vào đó, luôn luôn là một điều tốt để biết số lượng thiết bị hoạt động thực tế có cấu hình màn hình cụ thể.
Tôi sẽ giải thích chi tiết hơn về cách chính xác dp chuyển đổi sang px:
150 x 150 px
hình ảnh sẽ chiếm 150 * 150 dp
không gian màn hình.150 x 150 px
hình ảnh sẽ chiếm 100 * 100 dp
không gian màn hình.150x150 px
hình ảnh sẽ chiếm 75 * 75 dp
không gian màn hình.Một cách khác: giả sử, bạn muốn thêm một hình ảnh vào ứng dụng của mình và bạn cần nó để điền vào một 100 * 100 dp
điều khiển. Bạn sẽ cần tạo hình ảnh kích thước khác nhau cho kích thước màn hình được hỗ trợ:
100 * 100 px
hình ảnh cho mdpi150 * 150 px
hình ảnh cho hdpi200 * 200 px
hình ảnh cho xhdpipx - Pixels - điểm trên mỗi tỷ lệ tương ứng với các pixel thực trên màn hình.
i - Inches - dựa trên kích thước vật lý của màn hình.
mm - Millimet - dựa trên kích thước vật lý của màn hình.
pt - Điểm - 1/72 inch dựa trên kích thước vật lý của màn hình.
dp - Pixels độc lập với mật độ - một đơn vị trừu tượng dựa trên mật độ vật lý của màn hình. Các đơn vị này có liên quan đến màn hình 160 dpi, vì vậy một dp
là một pixel trên màn hình 160 dpi. Tỷ lệ dp-pixel sẽ thay đổi theo mật độ màn hình, nhưng không nhất thiết phải theo tỷ lệ trực tiếp. Lưu ý: Trình biên dịch chấp nhận cả hai dip
và dp
, mặc dù dp
phù hợp hơn với sp
.
sp - Pixels độc lập theo tỷ lệ - đây giống như dp
đơn vị, nhưng nó cũng được chia tỷ lệ theo sở thích kích thước phông chữ của người dùng. Bạn nên sử dụng đơn vị này khi chỉ định kích thước phông chữ, vì vậy chúng sẽ được điều chỉnh cho cả mật độ màn hình và tùy chọn của người dùng.
Lấy ví dụ về hai màn hình có cùng kích thước nhưng một màn hình có mật độ màn hình 160 dpi (số chấm trên mỗi inch, tức là pixel trên inch) và màn hình kia là 240 dpi.
Lower resolution screen Higher resolution, same size
Physical Width 1.5 inches 1.5 inches
Dots Per Inch (“dpi”) 160 240
Pixels (=width*dpi) 240 360
Density (factor of baseline 160) 1.0 1.5
Density-independent pixels 240 240
(“dip” or “dp” or “dps”)
Scale-independent pixels
(“sip” or “sp”) Depends on user font size settings same
Ngoài ra, bạn nên hiểu rõ về các khái niệm sau:
Kích thước màn hình:
Kích thước vật lý thực tế, được đo bằng đường chéo của màn hình. Để đơn giản, Android nhóm tất cả các kích thước màn hình thực tế thành bốn kích thước tổng quát: nhỏ, bình thường, lớn và cực lớn.
Mật độ màn hình:
Số lượng pixel trong một khu vực vật lý của màn hình; thường được gọi là dpi (số chấm trên mỗi inch). Ví dụ: màn hình mật độ "thấp" có ít pixel hơn trong một vùng vật lý nhất định, so với màn hình mật độ "bình thường" hoặc "cao". Để đơn giản, Android nhóm tất cả các mật độ màn hình thực tế thành bốn mật độ tổng quát: thấp, trung bình, cao và cực cao.
Sự định hướng:
Hướng của màn hình theo quan điểm của người dùng. Đây là phong cảnh hoặc dọc, nghĩa là tỷ lệ khung hình của màn hình tương ứng rộng hoặc cao. Xin lưu ý rằng không chỉ các thiết bị khác nhau hoạt động theo các hướng khác nhau theo mặc định, mà hướng có thể thay đổi khi chạy khi người dùng xoay thiết bị.
Nghị quyết:
Tổng số pixel vật lý trên một màn hình. Khi thêm hỗ trợ cho nhiều màn hình, các ứng dụng không hoạt động trực tiếp với độ phân giải; các ứng dụng chỉ nên được quan tâm với kích thước và mật độ màn hình, như được chỉ định bởi các nhóm kích thước và mật độ tổng quát.
Pixel độc lập với mật độ (dp):
Một đơn vị pixel ảo mà bạn nên sử dụng khi xác định bố cục UI, để thể hiện kích thước hoặc vị trí bố cục theo cách không phụ thuộc vào mật độ. Pixel độc lập với mật độ tương đương với một pixel vật lý trên màn hình 160 dpi, đây là mật độ cơ sở được hệ thống giả định cho màn hình mật độ "trung bình". Khi chạy, hệ thống xử lý một cách trong suốt mọi tỷ lệ của các đơn vị dp, khi cần thiết, dựa trên mật độ thực tế của màn hình đang sử dụng. Việc chuyển đổi các đơn vị dp thành pixel màn hình rất đơn giản: px = dp * (dpi / 160). Ví dụ: trên màn hình 240 dpi, 1 dp bằng 1,5 pixel vật lý. Bạn phải luôn sử dụng các đơn vị dp khi xác định giao diện người dùng của ứng dụng để đảm bảo hiển thị đúng giao diện người dùng của bạn trên màn hình với mật độ khác nhau.
Tham khảo: Trang web dành cho nhà phát triển Android
dp
là dip
. Sử dụng nó cho tất cả mọi thứ (lề, đệm, vv).
Chỉ sử dụng sp
cho {text-size}.
Thấy sự khác biệt giữa px
, dp
và sp
trên kích thước màn hình khác nhau.
px hoặc dot là một pixel trên màn hình vật lý.
dpi là pixel trên inch trên màn hình vật lý và biểu thị mật độ của màn hình.
Android cung cấp tên bí danh cho một số mật độ
nhúng hoặc dp là các pixel không có mật độ , nghĩa là chúng tương ứng với nhiều hay ít pixel tùy thuộc vào mật độ vật lý.
sp hoặc sip là một pixel độc lập tỷ lệ . Chúng được thu nhỏ khi tùy chọn Văn bản lớn được bật trong Settings>Accessibility
Sử dụng sp cho kích thước văn bản.
Sử dụng dp cho mọi thứ khác.
Nguồn 3 : (dữ liệu từ nguồn 3 được đưa ra dưới đây)
Đây là các giá trị kích thước được xác định trong XML. Một thứ nguyên được chỉ định với một số theo sau là một đơn vị đo. Ví dụ: 10px, 2in, 5sp. Các đơn vị đo lường sau được Android hỗ trợ:
dp
Pixels độc lập với mật độ - Một đơn vị trừu tượng dựa trên mật độ vật lý của màn hình. Các đơn vị này có liên quan đến màn hình 160 dpi (số chấm trên mỗi inch), trên đó 1dp gần bằng 1px. Khi chạy trên màn hình mật độ cao hơn, số pixel được sử dụng để vẽ 1dp được tăng lên theo hệ số phù hợp với dpi của màn hình. Tương tự, khi trên màn hình mật độ thấp hơn, số pixel được sử dụng cho 1dp được thu nhỏ lại. Tỷ lệ dp-pixel sẽ thay đổi theo mật độ màn hình, nhưng không nhất thiết phải theo tỷ lệ trực tiếp. Sử dụng các đơn vị dp (thay vì các đơn vị px) là một giải pháp đơn giản để làm cho kích thước chế độ xem trong bố cục của bạn thay đổi kích thước đúng cho các mật độ màn hình khác nhau. Nói cách khác, nó cung cấp tính nhất quán cho kích thước trong thế giới thực của các thành phần UI của bạn trên các thiết bị khác nhau.
sp
Pixels độc lập tỷ lệ - Đây giống như đơn vị dp, nhưng nó cũng được thu nhỏ theo sở thích kích thước phông chữ của người dùng. Bạn nên sử dụng đơn vị này khi chỉ định kích thước phông chữ, vì vậy chúng sẽ được điều chỉnh cho cả mật độ màn hình và tùy chọn của người dùng.
pt
Điểm - 1/72 inch dựa trên kích thước vật lý của màn hình.
px
Pixel - Tương ứng với các pixel thực tế trên màn hình. Đơn vị đo này không được khuyến nghị vì đại diện thực tế có thể khác nhau giữa các thiết bị; mỗi thiết bị có thể có số pixel trên mỗi inch khác nhau và có thể có nhiều hoặc ít hơn tổng số pixel có sẵn trên màn hình.
mm
Millimet - Dựa trên kích thước vật lý của màn hình.
trong
Inch - Dựa trên kích thước vật lý của màn hình.
Lưu ý: Thứ nguyên là một tài nguyên đơn giản được tham chiếu bằng cách sử dụng giá trị được cung cấp trong thuộc tính name (không phải tên của tệp XML). Như vậy, bạn có thể kết hợp các tài nguyên thứ nguyên với các tài nguyên đơn giản khác trong một tệp XML, dưới một thành phần.
Về cơ bản thời gian duy nhất áp dụng px là một px và đó là nếu bạn muốn chính xác một pixel trên màn hình như trong trường hợp của dải phân cách:
Trên> 160 dpi, bạn có thể nhận được 2-3 pixel,
Trên> 120 dpi, nó làm tròn thành 0.
px
Pixel - tương ứng với các pixel thực tế trên màn hình.
dp hoặc nhúng
Pixels độc lập với mật độ - một đơn vị trừu tượng dựa trên mật độ vật lý của màn hình. Các đơn vị này có liên quan đến màn hình 160 dpi, vì vậy một dp là một pixel trên màn hình 160 dpi.
Sử dụng dp:
Độc lập mật độ - Ứng dụng của bạn đạt được tính độc lập mật độ của Google khi nó duy trì kích thước vật lý (theo quan điểm của người dùng) của các thành phần giao diện người dùng khi được hiển thị trên màn hình với mật độ khác nhau. (tức là) Hình ảnh phải có cùng kích thước (không được phóng to hoặc thu nhỏ) trong các loại màn hình khác nhau.
sp
Pixels độc lập tỷ lệ - đây giống như đơn vị dp, nhưng nó cũng được thu nhỏ theo sở thích kích thước phông chữ của người dùng.
http://developer.android.com/guide/topics/resource/more-resource.html#Dimension
Một đơn vị pixel ảo mà bạn nên sử dụng khi xác định bố cục UI, để thể hiện kích thước hoặc vị trí bố cục theo cách không phụ thuộc vào mật độ. Như đã mô tả ở trên, pixel độc lập với mật độ tương đương với một pixel vật lý trên màn hình 160 dpi, đây là mật độ cơ sở được hệ thống giả định cho màn hình mật độ "trung bình". Khi chạy, hệ thống xử lý một cách trong suốt mọi tỷ lệ của các đơn vị dp, khi cần thiết, dựa trên mật độ thực tế của màn hình đang sử dụng. Việc chuyển đổi các đơn vị dp thành pixel màn hình rất đơn giản:
px = dp * (dpi / 160).
Ví dụ: trên màn hình 240 dpi, 1 dp bằng 1,5 pixel vật lý. Bạn phải luôn sử dụng các đơn vị dp khi xác định giao diện người dùng của ứng dụng để đảm bảo hiển thị đúng giao diện người dùng của bạn trên màn hình với mật độ khác nhau.
Hiểu pixel cho dp và ngược lại là rất cần thiết (đặc biệt là đưa ra các giá trị dp chính xác cho nhóm sáng tạo)
dp = px * 160 / dpi
MDPI = 160 dpi || Therefore, on MDPI 1 px = 1 dp
For example, if you want to convert 20 pixel to dp, use the above formula,
dp = 20 * 160 / 160 = 20.
So, 20 pixel = 20 dp.
HDPI = 240 dpi - So, on HDPI 1.5 px = 1 dp
XHDPI = 320 dpi - So, on XHDPI 2 px = 1 dp
XXHDPI = 480 dpi - So, on XXHDPI 3 px = 1 dp
For example, let us consider Nexus 4.
If 24 pixels to be converted to dp and if it is a Nexus 4 screen, developers can
convert it to dp easily by the following calculation :
dp = 24 * 160 / 320 = 12 dp
Screen dimension:
768 x 1280 pixel resolution (320 ppi or 320dpi)
Optional (screen size):
4.7" diagonal
Nó được giải thích ở trên. Cố gắng tránh trong tập tin bố trí. Nhưng có một số trường hợp, trong đó px là bắt buộc. ví dụ: dòng chia ListView. px ở đây tốt hơn khi đưa ra một dòng một pixel làm vạch chia cho tất cả các độ phân giải trên màn hình.
Sử dụng sp cho kích thước phông chữ. Sau đó, chỉ có phông chữ bên trong ứng dụng sẽ thay đổi trong khi kích thước phông chữ của thiết bị thay đổi (nghĩa là Hiển thị -> Phông chữ trên Thiết bị). Nếu bạn muốn giữ một phông chữ có kích thước tĩnh bên trong ứng dụng, bạn có thể cung cấp kích thước phông chữ trong dp. Trong trường hợp như vậy, nó sẽ không bao giờ thay đổi. Các nhà phát triển có thể nhận được yêu cầu như vậy đối với một số màn hình cụ thể, vì điều đó, các nhà phát triển có thể sử dụng dp thay vì sp. Trong tất cả các trường hợp khác, sp được khuyến khích.
Bạn có thể thấy sự khác biệt giữa px
và dp
từ hình ảnh bên dưới, và bạn cũng có thể thấy rằng px
và dp
không thể đảm bảo cùng kích thước vật lý trên các màn hình khác nhau.
Bất cứ điều gì liên quan đến kích thước của văn bản và sự xuất hiện phải sử dụng sp
hoặc pt
. Trong khi đó, bất cứ điều gì liên quan đến kích thước của các điều khiển, bố cục, vv phải được sử dụng với dp
.
Bạn có thể sử dụng cả dp
và dip
tại địa điểm của nó.
Tôi sẽ chỉ sử dụng dp.
Có rất nhiều thảo luận về việc sử dụng "sp" cho kích thước phông chữ và trong khi tôi đánh giá cao điểm này, tôi không nghĩ rằng đó là điều đúng đắn theo quan điểm thiết kế. Cuối cùng, bạn có thể phá vỡ thiết kế của mình nếu người dùng có một số lựa chọn kích thước phông chữ và người dùng cuối cùng sẽ đổ lỗi cho ứng dụng chứ không phải lựa chọn cuộc sống của riêng họ.
Ngoài ra, nếu bạn sử dụng ứng dụng sp-font trên máy tính bảng 160 dpi, bạn sẽ thấy mọi thứ đều tăng lên ... nhưng phông chữ của bạn sẽ trông rất nhỏ khi so sánh. Đó không phải là một cái nhìn tốt.
Mặc dù ý tưởng về phông chữ "sp" có một trái tim tốt, nhưng đó là một ý tưởng tồi. Gắn bó với dp cho mọi thứ.
sp
là một yếu tố, phải không? Bất cứ điều gì ảnh hưởng dp
cũng sẽ ảnh hưởng sp
. Điều đó nói rằng, vẫn nên chỉ định kích thước phông chữ bằng cách sử dụng dp
thay vì sp
nếu bố cục của bạn rất chặt chẽ và kích thước lớn hơn sẽ không phù hợp - tốt hơn là có văn bản nhỏ hơn so với những gì người dùng muốn bố cục hoàn toàn lộn xộn. Nhưng trong trường hợp đầu tiên, bạn phải luôn cố gắng tôn trọng sở thích kích thước phông chữ của người dùng - ngay cả cài đặt lớn nhất cũng không lớn.
sp = tỷ lệ pixel độc lập
dp = dip = mật độ pixel độc lập
dpi = số chấm trên mỗi inch
Chúng ta nên tránh sử dụng sp .
Chúng ta nên sử dụng dp để hỗ trợ nhiều màn hình.
Android hỗ trợ các độ phân giải màn hình khác nhau
Một thiết bị 120 dp ldpi có kích thước 120 pixel với kích thước 1 inch.
Tương tự đối với các mật độ khác ...
Chúng tôi là kỹ sư phần mềm nên sử dụng công thức chuyển đổi này:
pixel = dp * (mật độ / 160)
Vì vậy, 1 dp của thiết bị 240 dpi sẽ có = 1 * (240/160) = 3/2 = 1,5 pixel.
Và 1 dp của thiết bị 480 dpi sẽ có = 1 * (480/160) = 3 pixel.
Sử dụng kiến thức 1,5 và 3 pixel này, một kỹ sư phần mềm có thể thiết kế bố cục cho các mật độ khác nhau.
Để kiểm tra thông số màn hình của bất kỳ thiết bị nào:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Toast.makeText(
this,
"4:" + metrics.heightPixels + "," + metrics.density + ","
+ metrics.densityDpi, Toast.LENGTH_LONG).show();
Sự khác biệt giữa dp
và sp
các đơn vị được đề cập là " tùy chọn kích thước phông chữ của người dùng " bởi các câu trả lời được sao chép từ tài liệu chính thức có thể được nhìn thấy trong thời gian chạy bằng cách thay đổi Settings->Accessibility->Large Text
tùy chọn.
Large Text
tùy chọn buộc văn bản trở nên 1.3
lớn hơn nhiều lần.
private static final float LARGE_FONT_SCALE = 1.3f;
Tất nhiên điều này có thể phụ thuộc vào nhà cung cấp vì nó nằm trong các gói / ứng dụng / Cài đặt .
dpi -
px - pixel
pt - điểm
in - inch - tương ứng với kích thước màn hình vật lý (1 inch = 2,54 cm).
mm- milimét - đối với kích thước màn hình vật lý.
sp - pixel độc lập tỷ lệ.
nhúng -
Trong tiêu chuẩn, dp và sp được sử dụng. sp cho kích thước phông chữ và dp cho mọi thứ khác.
Công thức chuyển đổi đơn vị:
px = dp * (dpi / 160);
Density Bucket -> Screen Display => Physical Size => Pixel Size
ldpi -> 120 dpi => 0.5 x 0.5 in => 0.5 in * 120 dpi = 60x60 px
mdpi -> 160 dpi => 0.5 x 0.5 in => 0.5 in * 160 dpi = 80x80 px
hdpi -> 240 dpi => 0.5 x 0.5 in => 0.5 in * 240 dpi = 120x120 px
xhdpi -> 320 dpi => 0.5 x 0.5 in => 0.5 in * 320 dpi = 160x160 px
xxhdpi -> 480 dpi => 0.5 x 0.5 in => 0.5 in * 480 dpi = 240x240 px
xxxhdpi -> 640 dpi => 0.5 x 0.5 in => 0.5 in * 640 dpi = 320x320 px
Đây là công thức được Android sử dụng:
px = dp * (dpi / 160)
Trong đó dpi là một trong những mật độ màn hình sau đây. Đối với một danh sách tất cả các mật độ có thể đi đến đây
Nó định nghĩa các hằng số "DENSITY_ *".
Lấy từ đây .
Điều này sẽ loại bỏ rất nhiều sự nhầm lẫn khi dịch giữa px và dp, nếu bạn biết màn hình dpi của mình.
Vì vậy, giả sử bạn muốn có hình ảnh 60 dp cho màn hình hdpi thì kích thước pixel vật lý là 60 dp là:
px = 60 * (240 / 160)
Kích thước màn hình trong Android
được nhóm thành các loại small
, medium
, large
, extra large
, double-extra
và triple-extra
. Mật độ màn hình là lượng pixel trong một khu vực (như inch) của màn hình. Nói chung, nó được đo bằng số chấm trên mỗi inch (dpi). Mật độ màn hình được nhóm thành thấp, trung bình, cao và cực cao. Độ phân giải là tổng số pixel trong màn hình.
Công thức chuyển đổi giữa các đơn vị
px = dp * (dpi / 160)
dp đến px trong thiết bị
Ví dụ sau có thể giúp hiểu rõ hơn. Việc chia tỷ lệ xảy ra dựa trên kích thước gầu 120 (ldpi), 160 (mdpi), 240 (hdpi), 320 (xhdpi), 480 (xxhdpi) và 640 (xxxhdpi). Tỷ lệ được đề xuất của Google để thiết kế là 3: 4: 6: 8: 12 cho ldpi: mdpi: hdpi: xhdpi: xxhdpi
Một hình ảnh 150px X 150px sẽ chiếm,
- Không gian màn hình 150 dp X 150 dp tính bằng mdpi
- Không gian màn hình 100 dp X 100 dp tính bằng hdpi
- Không gian màn hình 75 dp X 75 dp tính bằng xhdpi
Bạn có thể sử dụng máy tính DPI sau để sửa kích thước hình ảnh của mình và các kích thước khác khi bạn muốn có thiết kế UI thống nhất trong tất cả các thiết bị Android.
/*
Program output
LDPI: 165.0 X 60.0
MDPI: 220.0 X 80.0
HDPI: 330.0 X 120.0
XHDPI: 440.0 X 160.0
XXHDPI: 660.0 X 240.0
XXXHDPI: 880.0 X 320.0
*/
public class DPICalculator {
private final float LDPI = 120;
private final float MDPI = 160;
private final float HDPI = 240;
private final float XHDPI = 320;
private final float XXHDPI = 480;
private final float XXXHDPI = 640;
private float forDeviceDensity;
private float width;
private float height;
public DPICalculator(float forDeviceDensity, float width, float height){
this.forDeviceDensity = forDeviceDensity;
this.width = width;
this.height = height;
}
public static void main(String... args) {
DPICalculator dpiCalculator = new DPICalculator(240,330,120);
dpiCalculator.calculateDPI();
}
private float getPx(float dp, float value) {
float px = dp * (value / forDeviceDensity );
return px;
}
private void calculateDPI() {
float ldpiW = getPx(LDPI,width);
float ldpiH = getPx(LDPI,height);
float mdpiW = getPx(MDPI,width);
float mdpiH = getPx(MDPI,height);
float hdpiW = getPx(HDPI,width);
float hdpiH = getPx(HDPI,height);
float xdpiW = getPx(XHDPI,width);
float xdpiH = getPx(XHDPI,height);
float xxdpiW = getPx(XXHDPI,width);
float xxdpiH = getPx(XXHDPI,height);
float xxxdpiW = getPx(XXXHDPI,width);
float xxxdpiH = getPx(XXXHDPI,height);
System.out.println("LDPI: " + ldpiW + " X " + ldpiH);
System.out.println("MDPI: " + mdpiW + " X " + mdpiH);
System.out.println("HDPI: " + hdpiW + " X " + hdpiH);
System.out.println("XHDPI: " + xdpiW + " X " + xdpiH);
System.out.println("XXHDPI: " + xxdpiW + " X " + xxdpiH);
System.out.println("XXXHDPI: " + xxxdpiW + " X " + xxxdpiH);
}
}
Thêm thông tin tham khảo liên kết sau đây.
http://javapapers.com/android/difference-b between-dp-dip-sp-pixel-in-mm-pt-in-android /
Xin vui lòng đọc câu trả lời từ wiki cộng đồng. Dưới đây đề cập đến một số thông tin sẽ được xem xét ngoài các câu trả lời ở trên. Hầu hết các nhà phát triển Android bỏ lỡ điều này trong khi phát triển ứng dụng, vì vậy tôi đang thêm những điểm này.
sp = tỷ lệ pixel độc lập
dp = mật độ pixel độc lập
dpi = mật độ pixel
Tôi đã trải qua các câu trả lời trên ... không tìm thấy chúng chính xác. sp cho kích thước văn bản, dp cho giới hạn bố cục - tiêu chuẩn. Nhưng sp cho kích thước văn bản sẽ phá vỡ bố cục nếu sử dụng bất cẩn trong hầu hết các thiết bị.
sp lấy textize của thiết bị, trong khi dp lấy tiêu chuẩn mật độ thiết bị (không bao giờ thay đổi trong thiết bị) Nói văn bản 100sp có thể chiếm 80% màn hình hoặc 100% màn hình tùy thuộc vào kích thước phông chữ được đặt trong thiết bị
Bạn cũng có thể sử dụng sp cho giới hạn bố cục, nó sẽ hoạt động :) Không có ứng dụng tiêu chuẩn nào sử dụng sp cho toàn bộ văn bản
Sử dụng sp và dp cho kích thước văn bản xem xét UX.
Một số người sử dụng kích thước FONT lớn trong điện thoại của họ để dễ đọc hơn, việc cung cấp cho họ văn bản có kích thước mã hóa nhỏ sẽ là một vấn đề UX. Đặt sp cho văn bản khi cần thiết, nhưng đảm bảo nó sẽ không phá vỡ bố cục khi người dùng thay đổi cài đặt của mình.
Tương tự nếu bạn có một ứng dụng duy nhất hỗ trợ tất cả các kích thước, việc thêm tài sản xxxhdpi sẽ tăng kích thước ứng dụng lên rất nhiều. Nhưng bây giờ điện thoại xxxhdpi là phổ biến vì vậy chúng tôi phải bao gồm các tài sản xxxhdpi ít nhất cho các biểu tượng ở thanh bên, thanh công cụ và thanh dưới cùng. Tốt hơn là di chuyển đến hình ảnh vector để có hình ảnh đồng đều và chất lượng tốt hơn cho tất cả các kích thước màn hình.
Cũng lưu ý rằng mọi người sử dụng phông chữ tùy chỉnh trong điện thoại của họ. Vì vậy, thiếu một phông chữ có thể gây ra vấn đề về khoảng cách và tất cả. Nói kích thước văn bản 12sp cho một phông chữ tùy chỉnh có thể mất thêm một số pixel so với phông chữ mặc định.
Tham khảo trang web dành cho nhà phát triển google để biết thông tin chi tiết và thông tin chi tiết về Android. https://developer.android.com/training/multiscreen/screendensities
Tôi đã bắt gặp một bài viết hay về thiết kế giao diện người dùng ứng dụng Android cho các độ phân giải màn hình khác nhau và tôi muốn để nó ở đây chỉ cho ai đó tìm kiếm trong khu vực này. Vâng, tôi biết rằng bằng cách nào đó được mô tả trong tài liệu của Google (và được đề cập trong các bài đăng ở trên), tôi đã đọc nó nhưng nó không tốt cho tôi (vâng, tôi có thể quá ngu ngốc)). Tôi vẫn chưa rõ làm thế nào để thiết kế bố cục có khả năng xử lý kích thước màn hình khác nhau. Tôi ghét khái niệm DP, v.v., khi tôi cần triển khai bố cục UI "linh hoạt" cho các màn hình khác nhau. (Này các nhà phát triển iOS - vâng, bạn nói đúng đó là khái niệm Storyboard).
Android không có khái niệm UI xấu, nhưng không có tính năng iOS Storyboard. Thiết kế giao diện người dùng linh hoạt trong Android không phải là điều dễ dàng (tốt nhất).
Dưới đây là bài viết giúp tôi hiểu phải làm gì trong Android để tạo bố cục cho các kích thước màn hình khác nhau:
Blog JMSTUDIO: - Quyết định kích thước màn hình ứng dụng Android
Cách thiết kế giao diện người dùng cho ứng dụng Android cho kích thước màn hình khác nhau
Để thiết kế giao diện người dùng ứng dụng cho các kích thước màn hình khác nhau, thiết kế ban đầu của chúng tôi phải đáp ứng một không gian cần thiết tối thiểu cho mỗi kích thước màn hình. Android xác định kích thước tối thiểu (tính bằng dp) cho từng loại màn hình tổng quát. Dưới đây là hướng dẫn kích thước màn hình Android. Khi chúng tôi nhận được kích thước màn hình trong dp, chúng tôi không đủ để thiết kế giao diện người dùng ứng dụng Android. Đối với mỗi kích thước màn hình, chúng ta cần chuẩn bị đồ họa và hình ảnh bitmap cho từng mật độ. Dưới đây là hướng dẫn mật độ màn hình Android.
Để tính toán dễ dàng, chúng ta có thể theo tỷ lệ chia tỷ lệ 3: 4: 6: 8 giữa bốn mật độ tổng quát. Nếu chúng ta tạo một hình ảnh 36 × 36 pixel cho thiết bị ldpi, kích thước hình ảnh mật độ còn lại sẽ là 48 × 48 cho mdpi, 72 × 72 cho hdpi và 96 × 96 cho xhdpi.
Cách thiết kế giao diện người dùng ứng dụng Android trong Photoshop
Nhiều nhà thiết kế gặp vấn đề khi thiết kế giao diện người dùng ứng dụng Android trong photoshop hoặc các công cụ thiết kế đồ họa dựa trên pixel khác vì đơn vị độc lập với mật độ, dp. Nhà thiết kế không biết cách ánh xạ dp tới pixel. Google cũng không cung cấp hướng dẫn thiết kế giao diện người dùng Android rõ ràng cho họ, mặc dù họ đưa ra một công thức cơ bản cho dịch dp và pixel.
Theo định nghĩa của Android, 1pd bằng 1px dưới thiết bị 160 dpi (mdpi). Vì vậy, chúng tôi muốn thiết kế một ứng dụng Android cho thiết bị Android xlarge với mật độ mdpi, chúng tôi có thể xác định kích thước UI của mình theo pixel là chiều rộng 960 pixel và chiều cao 720px; Thực hiện theo cùng một quy tắc ánh xạ, chúng ta có thể làm theo hướng dẫn thiết kế giao diện người dùng kích thước màn hình ứng dụng Android:
THÊM : Nếu bạn cũng quan tâm đến giao diện người dùng "linh hoạt", hãy xem thư viện này: SDK Android cung cấp đơn vị kích thước mới - sdp (dp có thể mở rộng). Đơn vị kích thước này chia tỷ lệ với kích thước màn hình (điều này cũng được đề cập trong câu trả lời ở đây, về SDP
thư viện)
ADDED2 Google cuối cùng đã hiểu được sự hữu ích của khái niệm UI Storeboard iOS và ở đây ConstraintLayout
dành cho thế giới Android: Xây dựng giao diện người dùng đáp ứng với ConstraintLayout
1) dp: (density independent pixels)
Số lượng pixel được biểu thị trong một đơn vị dp sẽ tăng khi độ phân giải màn hình tăng (khi bạn có nhiều chấm / pixel trên inch). Ngược lại, trên các thiết bị có độ phân giải thấp hơn, số pixel được biểu thị trên đơn vị dp sẽ giảm. Vì đây là một đơn vị tương đối, nó cần phải có một đường cơ sở để được so sánh với. Đường cơ sở này là màn hình 160 dpi. Đây là phương trình:px = dp * (dpi / 160).
2) sp: (scale independent pixels)
Đơn vị này chia tỷ lệ theo dpi màn hình (tương tự dp) cũng như tùy chọn kích thước phông chữ của người dùng.
3) px: (pixels)
Pixel thực tế hoặc dấu chấm trên màn hình.
Để biết thêm chi tiết bạn có thể truy cập
Hướng dẫn dành cho nhà phát triển Android> Kích thước
Hướng dẫn dành cho nhà phát triển Android> Màn hình
Kích thước màn hình trong Android được nhóm thành các loại ldpi
, mdpi
, hdpi
, xhdpi
, xxhdpi
và xxxhdpi
. Mật độ màn hình là lượng pixel trong một khu vực (như inch) của màn hình. Nói chung, nó được đo bằng số chấm trên mỗi inch ( dpi
).
PX(Pixels):
px
có nghĩa là cho các pixel tuyệt đối. Điều này được sử dụng nếu bạn muốn đưa ra về mặt pixel tuyệt đối cho chiều rộng hoặc chiều cao. Không được khuyến khích.DP/DIP(Density pixels / Density independent pixels):
dip == dp
. Trong các phiên bản Android trước đó, nhúng đã được sử dụng và sau đó đổi thành dp
. Đây là thay thế của px
.
Nói chung chúng tôi không bao giờ sử dụng px
vì nó là giá trị tuyệt đối. Nếu bạn sử dụng px
để đặt chiều rộng hoặc chiều cao và nếu ứng dụng đó đang được tải xuống các thiết bị có kích thước màn hình khác nhau, thì chế độ xem đó sẽ không kéo dài theo kích thước ban đầu của màn hình.
dp
rất khuyến khích sử dụng thay thế px
. Sử dụng dp
nếu bạn muốn đề cập đến chiều rộng và chiều cao để phát triển & thu nhỏ linh hoạt dựa trên kích thước màn hình.
Nếu chúng tôi đưa ra dp/dip
, android sẽ tự động tính toán kích thước pixel trên cơ sở màn hình có kích thước 160 pixel.
SP(Scale independent pixels):
chia tỷ lệ dựa trên sở thích kích thước phông chữ của người dùng. Phông chữ nên sử dụng sp
.
khi đề cập đến kích thước phông chữ để phù hợp với các kích cỡ màn hình khác nhau, hãy sử dụng sp
. Điều này tương tự như dp
.Sử dụng sp
đặc biệt cho các kích thước phông chữ để tăng và thu nhỏ động dựa trên kích thước màn hình
Tài liệu Android cho biết:
khi chỉ định kích thước, luôn luôn sử dụng một trong hai
dp
hoặcsp
đơn vị. Adp
là một pixel độc lập với mật độ tương ứng với kích thước vật lý của pixel ở mức 160dpi
. Ansp
là cùng một đơn vị cơ sở, nhưng được chia tỷ lệ theo kích thước văn bản ưa thích của người dùng (đó là pixel độc lập với tỷ lệ), vì vậy bạn nên sử dụng đơn vị đo này khi xác định kích thước văn bản
Màn hình của điện thoại di động được tạo thành từ hàng ngàn chấm nhỏ được gọi là pixel (px) . Một pixel là yếu tố nhỏ nhất để tạo ra hình ảnh. Số lượng pixel để tạo ảnh hoặc từ ngữ càng nhiều, nó càng trở nên sắc nét hơn và làm cho màn hình điện thoại thông minh dễ đọc hơn.
Độ phân giải màn hình được đo bằng số lượng pixel trên màn hình. Độ phân giải màn hình là thông số kỹ thuật thường được sử dụng khi mua thiết bị, nhưng thực sự không hữu ích khi thiết kế cho Android vì nghĩ màn hình về pixel bỏ qua khái niệm kích thước vật lý, đối với thiết bị cảm ứng thực sự rất quan trọng.
Pixel độc lập mật độ (dp hoặc nhúng) cho phép nhà thiết kế tạo tài sản xuất hiện theo cách mong đợi, bất kể độ phân giải hoặc mật độ của thiết bị đích.
Một pixel độc lập mật độ (dp hoặc nhúng) bằng một pixel ở mật độ cơ sở hoặc 160 dpi (số chấm trên mỗi inch).
1 px / 1dp = 160 dpi / 160 dpi
2 px / 1dp = 320 dpi (2x) / 160 dpi
Ở đâu,
dpi là số chấm trên mỗi inch
Vì vậy, ở 320 dpi, 1 dp bằng 2 px.
Công thức
px / dp = dpi / 160dpi
Số chấm trên mỗi inch (dpi) là thước đo độ sắc nét (nghĩa là mật độ của các điểm được chiếu sáng) trên màn hình hiển thị. Số chấm trên mỗi inch cho độ phân giải hình ảnh nhất định sẽ khác nhau dựa trên kích thước màn hình tổng thể do cùng một số pixel đang được trải ra trên một không gian khác nhau.
Làm việc với các pixel độc lập mật độ giúp chúng tôi xử lý tình huống như bạn có hai thiết bị có cùng độ phân giải pixel, nhưng dung lượng khác nhau. Giả sử trong một trường hợp, một máy tính bảng và điện thoại có cùng độ phân giải pixel 1280 x 800 pixel (160 dpi) và 800 x 1280 pixel (320 dpi).
Bây giờ vì một máy tính bảng có mật độ cơ sở (160 dpi), kích thước pixel độc lập về mật độ và vật lý của nó là như nhau, 1280 x 800. Mặt khác, điện thoại có mật độ pixel cao hơn, do đó, nó có một nửa số pixel độc lập với mật độ như vật lý điểm ảnh. Vì vậy, một chiếc điện thoại có mật độ pixel độc lập 400 x 640. Vì vậy, sử dụng pixel độc lập với mật độ sẽ giúp dễ dàng hình dung rằng máy tính bảng có nhiều không gian hơn điện thoại.
Tương tự, nếu bạn có hai thiết bị có kích thước màn hình tương tự nhau, nhưng mật độ pixel khác nhau, giả sử một thiết bị là 800 x 1280 pixel (320 dpi) và thiết bị kia là 400 x 640 pixel (160 dpi), chúng tôi không cần xác định hoàn toàn bố cục khác nhau cho hai thiết bị này vì chúng tôi có thể đo lường tài sản theo pixel độc lập mật độ, giống nhau cho cả hai thiết bị.
800 x 1280 pixel (320dpi) = 400 x 640 pixel mật độ độc lập (dp)
400 x 640 pixel (160 dpi) = 400 x 640 pixel mật độ độc lập (dp)
Tỷ lệ pixel độc lập (sp) là đơn vị ưa thích cho kích thước phông chữ. Đối với mục đích truy cập, Android cho phép người dùng tùy chỉnh kích thước phông chữ của thiết bị. Người dùng gặp khó khăn khi đọc văn bản có thể tăng kích thước phông chữ của thiết bị. Thông thường bạn có thể tìm thấy tùy chọn này trong cài đặt hiển thị trên điện thoại hoặc máy tính bảng của bạn dưới cỡ chữ. Nó cũng thường có sẵn thông qua các cài đặt trợ năng.
Với các pixel độc lập tỷ lệ, 16 sp hoàn toàn giống với 16 dp khi kích thước phông chữ của thiết bị ở mức bình thường hoặc 100%. Nhưng khi kích thước phông chữ của thiết bị lớn, ví dụ 125%, 16 sp sẽ dịch thành 20 dp hoặc 1,25 lần 16.
Nếu bạn sử dụng dp làm đơn vị cho kích thước phông chữ, thì đoạn văn bản đó có kích thước vật lý cụ thể bất kể người dùng có tùy chỉnh kích thước phông chữ của thiết bị hay không. Sử dụng đơn vị sp sẽ tạo ra trải nghiệm tốt hơn cho những người bị suy giảm thị lực.
Tham khảo : Udacity , Google
Mật độ pixel màn hình và độ phân giải khác nhau tùy thuộc vào nền tảng. Các pixel độc lập với thiết bị và các pixel có thể mở rộng là các đơn vị cung cấp một cách linh hoạt để phù hợp với thiết kế trên các nền tảng.
Số lượng pixel phù hợp với một inch được gọi là mật độ pixel. Màn hình mật độ cao có nhiều pixel trên mỗi inch hơn màn hình mật độ thấp ....
Số lượng pixel phù hợp với một inch được gọi là mật độ pixel. Màn hình mật độ cao có nhiều pixel trên mỗi inch hơn so với màn hình mật độ thấp. Do đó, các thành phần UI có cùng kích thước pixel xuất hiện lớn hơn trên màn hình mật độ thấp và nhỏ hơn trên màn hình mật độ cao.
Để tính mật độ màn hình, bạn có thể sử dụng phương trình này:
Mật độ màn hình = Chiều rộng màn hình (hoặc chiều cao) tính bằng pixel / Chiều rộng màn hình (hoặc chiều cao) tính bằng inch
Mật độ pixel màn hình và độ phân giải khác nhau tùy thuộc vào nền tảng. Các pixel độc lập với thiết bị và các pixel có thể mở rộng là các đơn vị cung cấp một cách linh hoạt để phù hợp với thiết kế trên các nền tảng.
Tính mật độ pixel Số pixel phù hợp với một inch được gọi là mật độ pixel . Màn hình mật độ cao có nhiều pixel trên mỗi inch hơn màn hình mật độ thấp ....
Mật độ độc lập đề cập đến việc hiển thị thống nhất các thành phần UI trên màn hình với mật độ khác nhau.
Các pixel độc lập với mật độ , được viết là dp (phát âm là dipsv ), là các đơn vị linh hoạt có tỷ lệ để có kích thước đồng đều trên bất kỳ màn hình nào. UI vật liệu sử dụng các pixel độc lập mật độ để hiển thị các yếu tố nhất quán trên màn hình với mật độ khác nhau.
Đọc toàn văn https://m Material.io/design/layout/pixel-d mật.html
Pixel (px) - tương ứng với các pixel thực trên màn hình. Điều này được sử dụng nếu bạn muốn đưa ra về mặt pixel tuyệt đối cho chiều rộng hoặc chiều cao.
Pixels độc lập mật độ (dp hoặc nhúng) - một đơn vị trừu tượng dựa trên mật độ vật lý của màn hình. Các đơn vị này có liên quan đến màn hình 160 dpi, vì vậy một dp là một pixel trên màn hình 160 dpi. Tỷ lệ dp-pixel sẽ thay đổi theo mật độ màn hình, nhưng không nhất thiết phải theo tỷ lệ trực tiếp. Lưu ý: Trình biên dịch chấp nhận cả hai trò chơi nhúng nhúng và trò chơi điện tử, mặc dù kiểu này phù hợp hơn với trò chơi điện tử.
Pixels độc lập tỷ lệ (sp) - đây giống như đơn vị dp, nhưng nó cũng được thu nhỏ theo sở thích kích thước phông chữ của người dùng. Bạn nên sử dụng đơn vị này khi chỉ định kích thước phông chữ, vì vậy chúng sẽ được điều chỉnh cho cả mật độ màn hình và tùy chọn của người dùng.
Luôn luôn chỉ sử dụng dp và sp. sp cho kích thước phông chữ và dp cho mọi thứ khác. Nó sẽ làm cho UI tương thích với các thiết bị Android với mật độ khác nhau. Bạn có thể tìm hiểu thêm về pixel và dp từ https://www.google.com.vn/design/spec/layout/units-measurements.html#units-measurements-d mật- indep khu-pixel-dp-
Url nguồn: - http://www.androidtutorialshub.com/what-is-the-difference-b between-pixel-dp-dip-sp-on- android /
Tôi muốn cung cấp một cách dễ hiểu dp
. Trong thực tế, tôi nghĩ dp
là dễ hiểu nhất. dp
chỉ là một đơn vị chiều dài vật lý. Nó có cùng kích thước với mm
hoặc inch
. Nó chỉ thuận tiện cho chúng ta viết 50dp
, 60dp
hơn là 50/160 inch
hoặc 60/160 inch
, bởi vì người dp
ta chỉ là 1/160 inch
bất kỳ kích thước hoặc độ phân giải màn hình nào.
Vấn đề duy nhất là, dpi android của một số màn hình không chính xác. Ví dụ, một màn hình được phân loại thành 160dpi có thể có 170dpi thực sự. Vì vậy, kết quả tính toán dp
là mờ. Nó sẽ được xấp xỉ như 1/160 inch
.