2011-01-16 27 views
6

im toàn bộ bị nhầm lẫn bởi dips trên Android.thông tin cơ bản về pixel độc lập của thiết bị

Tôi hiểu từ tham chiếu rằng cơ sở cho giá trị dp là 160. Vì vậy, không nên 80dp chiều rộng bằng một lượt xem có chiều rộng là 50% màn hình? Trên Nexus One của tôi, chiều rộng trong dp là khoảng 300dp.

Tôi đang thiếu gì ở đây?

thx trước

Trả lời

5

160 dots per inch . Vì vậy, 80dp sẽ là 1/2 inch, khoảng.

+0

OP hỏi về nhúng, không dpi. – Ying

+0

Chúng có liên quan. Ông đã đề cập 160 là giá trị cơ sở - giá trị đó là mật độ trong DPI. – kcoppock

+0

bạn nói đúng - Tôi không đọc kỹ câu trả lời này. – Ying

16

"dp" == "Pixels Mật độ độc lập" (Đây cũng là lý do tại sao nó được trước đó được gọi là "nhúng", mặc dù tôi thích sử dụng "dp" những ngày này.)

nghĩ về nó như các đơn vị khác - "in" (inch), "mm" (mm), v.v. Nó cho phép bạn cung cấp kích thước được chia tỷ lệ dựa trên mật độ của màn hình.

Chúng tôi xác định mdpi là mật độ cơ sở, vì vậy "10dp" trên màn hình mdpi sẽ cho kết quả chính xác 10 pixel. Trên màn hình hdpi, kết quả sẽ là 15 pixel, vì hdpi là 1,5 * mdpi. Lưu ý rằng mặc dù hằng số cho các mật độ khác nhau tương tự như DPI (mdpi là 160, vv), mật độ là không phải là chính xác DPI. Nó là một yếu tố mở rộng trừu tượng điều chỉnh cho dpi màn hình, nhưng không cố gắng phản ánh chính xác nó. (Bạn sẽ sử dụng "in", "mm", vv cho kích thước chính xác nhưng 99,9% đó không phải là những gì bạn muốn để gắn bó với "dp".) Điều này giúp đơn giản hóa cuộc sống cho mọi người vì bạn không cần phải đối phó với nhiều Android các thiết bị có lượng không gian hơi khác nhau đối với giao diện người dùng của nó vì mỗi thiết bị có DPI màn hình nhỏ khác nhau. Ngoài ra, nhà sản xuất thiết bị có thể chọn mật độ thiết bị của họ để đạt được giao diện người dùng mong muốn - ví dụ: Tab Samsung sử dụng mật độ lớn hơn DPI thực, dẫn đến giao diện người dùng lớn hơn.

+4

"Điều này giúp đơn giản hóa cuộc sống cho tất cả mọi người" - ngoại trừ nó không. Nó làm cho cuộc sống khó khăn hơn cho tất cả mọi người - bởi vì dips không làm việc (họ rất VERY khác nhau trên nhiều phần cứng bây giờ mà họ là vô dụng). Google vẫn nói sử dụng nhúng cho tất cả giao diện người dùng, nhưng điều đó là không thể vì nó gây ra những tổn thất hoàn toàn sai trên 30% tất cả các thiết bị cầm tay (tôi đến đây tìm kiếm giải pháp, thất vọng khi không tìm thấy). – Adam

0

Pixel độc lập mật độ (ngắn: dp) là đơn vị pixel ảo sẽ được xác định tại thời gian chạy của ứng dụng của bạn.

Formala: 1 dp = 1 Pixel trên màn hình 160 dpi. Vì vậy, 160 dpi là mật độ đường cơ sở cho hệ thống.

Việc chuyển đổi đơn vị dp thành pixel màn hình khá đơn giản. pixel thiết bị thực tế (px) = dp (1) * (dpi (của thiết bị)/160 (ban đầu)) Vì lợi ích của sự đơn giản: px = dp * (dpi/160)

Ví dụ: Nếu thiết bị 240 dpi khởi động ứng dụng của bạn, sau đó 1 dp bằng 1,5 pixel thiết bị thực tế.

Kết luận: Dp tự động xử lý mọi quy mô cho các thiết bị lớn hơn hoặc nhỏ hơn. Những lúc bạn mã hóa các điểm ảnh đã hết. DP đảm bảo tỷ lệ thích hợp trên các mật độ màn hình khác nhau.

Các vấn đề liên quan