2015-02-12 22 views
29

Làm cách nào để chuẩn bị tài nguyên cho Nexus 6? Nếu tôi đưa hình ảnh vào xxxhdpi, chúng sẽ giảm tỷ lệ và giảm chất lượng. Tôi đưa hình ảnh vào xxhdpi họ sẽ mở rộng quy mô và giảm chất lượng. Tại sao nhà phát triển quyết định giá trị thiết lập 560dpi cho mật độ, nếu mật độ thực 493ppi gần hơn với xxhdpi ~ 480dpi?Tại sao mật độ Nexus 6 là 560 dpi?

Nexus 6 tự hào ấn tượng 5.96 ”Màn hình Quad HD hiển thị ở độ phân giải 2560 x 1440 (493 ppi). Điều này chuyển thành ~ 730 x 410 dp (mật độ pixel độc lập).

Nexus 6 có mật độ lượng tử là 560 dpi, nằm giữa các nhóm mật độ chính xxhdpi và xxxhdpi chính.

Đối với Nexus 6, nền tảng sẽ giảm kích thước tài sản xxxhdpi, nhưng nếu những nội dung không khả dụng, thì nó sẽ mở rộng tài sản xxhdpi.

xxhdpi ~480dpi 
xxxhdpi ~640dpi 
+1

"Tại sao nhà phát triển" câu hỏi như thế này thường không phù hợp với Stack Overflow. – CommonsWare

+1

'Tôi đưa hình ảnh vào xxxhdpi họ sẽ giảm kích thước và giảm chất lượng. Tôi đưa hình ảnh vào xxhdpi họ sẽ mở rộng và giảm chất lượng.' Bạn nhận được chất lượng tốt hơn khi hình ảnh được thu nhỏ ** xuống ** (xấp xỉ trung bình) thay vì lên (pixellation). –

+4

Có tùy chọn để chỉ định tài nguyên chính xác cho điện thoại này không? một cái gì đó như drawable-560dp –

Trả lời

7

Trong trường hợp của Nexus 6, nhà sản xuất đã chọn một mật độ lượng tử của 560 (adb shell getprop ro.sf.lcd_density), mặc dù mật độ vật lý là khoảng 493 (getResources(). GetDisplayMetrics() .toString()). Hiểu được lý do tại sao họ có thể làm điều này đòi hỏi phải hiểu ý nghĩa của mật độ lượng tử hóa và cách nó ảnh hưởng đến việc hiển thị tài nguyên hình ảnh, được giải thích là here.

Tóm lại, mật độ lượng tử là 560 có nghĩa là hệ số tỷ lệ được sử dụng để tải/hiển thị hình ảnh sẽ là 3,5. Theo lời của D. Hackborn, 'Mật độ ... là một thùng mật độ trừu tượng nhà sản xuất thiết bị đã quyết định có ý nghĩa cho giao diện người dùng của họ để chạy trong. Đây là những gì được sử dụng để đánh giá những thứ như "dp" đơn vị và chọn và tỷ lệ bitmap từ tài nguyên. '

1

Tôi nghĩ đó là câu hỏi hợp lệ. Một số thiết bị nằm giữa dpis được hỗ trợ (xxhdpi & xxxhdpi), sử dụng hình ảnh sẽ làm việc mở rộng phần mềm không cần thiết. Tôi không bận tâm về sự khác biệt về chất lượng nhưng nó sẽ ảnh hưởng đến hiệu suất khởi động của ứng dụng. Kiểm tra biến số truy cập trong BitmapFatory, nếu điều này đúng, nền tảng sẽ làm phần mềm bổ sung không cần thiết. Lý tưởng phần cứng ui nên quy mô này trực tiếp bằng cách sử dụng OpenGL ES.

4

Bạn có thể sử dụng drawable-560dpi cho 560 dpi. Hình ảnh drawable-560dpidrawable-xxxhdpi có cùng độ phân giải.

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