2010-08-20 43 views
15

Tôi đang làm việc trên một ứng dụng dựa trên Galaxy S vào lúc này. Tôi biết rằng Galaxy S rộng 480 px và cao 800 px, nhưng DP có bao nhiêu tiền?Làm thế nào để nói với độ phân giải màn hình trong "DP"?

Cho phép nói nếu tôi muốn có hai Bố cục cạnh nhau, tôi sẽ đặt chúng ở mức 240 px. Nhưng làm cách nào để biết giá trị nào tôi nên sử dụng trong đơn vị DP?

Trả lời

14
Việc chuyển đổi đơn vị nhúng thành pixel màn hình rất đơn giản: pixel = dips * (mật độ/160). Ví dụ, trên màn hình 240 dpi, 1 lần nhúng sẽ bằng 1,5 pixel vật lý. Sử dụng các đơn vị nhúng để xác định giao diện người dùng của ứng dụng của bạn là rất được khuyến khích, như một cách để đảm bảo hiển thị thích hợp giao diện người dùng của bạn trên các màn hình khác nhau.

Tìm thấy: http://developer.android.com/guide/practices/screens_support.html

[sửa] Tôi chỉ phải sử dụng này. Sử dụng DisplayMetrics.density chỉ trả về 0,75, 1 và 1,5. Sử dụng DisplayMetrics.densityDpi thay thế hoặc thay đổi phép toán thành pixels = dips * DisplayMetrics.density

+0

Tôi đã bỏ lỡ điều đó như thế nào! Cảm ơn rất nhiều :) – RobGThai

0

Điều tôi phát hiện ra là DP không phải là về độ phân giải chút nào, về kích thước màn hình vì nó dựa trên đường cơ sở 160dpi. Một cách dễ dàng để tính toán sẽ là: ScreenSizeInInches * 160.

Trong trường hợp của bạn:

Width trong Inches = 480px/(240px/inch) = 2 inches Chiều cao trong Inches = 800px/(240px/inch) = 10/3 inches

Kiểm tra: sqrt(sqr(2) + sqr(10/3)) ~ = 4 inches mà là kích thước của Galaxy S.

Vì vậy, kích thước trong dp là (2 * 160) x (10/3 * 160) = 320dp x 533.3dp

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