2010-03-28 25 views

Trả lời

75

Tôi sẽ đoán rằng "ba thư mục có thể kéo" là drawable-ldpi, drawable-mdpidrawable-hdpi. Trong trường hợp đó, nếu bạn gắn bó với tất cả các thư mục đó, bạn cần phải đặt một hình ảnh trong mỗi thư mục, có kích thước để khớp với mật độ màn hình được chỉ định. Điều này được thảo luận trong số online documentation cũng như số blog post này. Bạn có thể tìm thấy một tập hợp các dự án mẫu hiển thị việc sử dụng các tài nguyên có thể vẽ khác nhau dựa trên mật độ màn hình here.

Nếu bạn mới bắt đầu phát triển Android, bạn có thể loại bỏ tất cả ba thư mục đó và tạo một thư mục drawable duy nhất, đưa hình ảnh của bạn vào đó. Cuối cùng, mặc dù, đối với một ứng dụng chất lượng, bạn sẽ muốn thử nghiệm hình ảnh của mình trên các thiết bị/trình mô phỏng khác nhau với mật độ màn hình khác nhau và có thể có hình ảnh khác nhau cho từng mật độ để cải thiện giao diện của ứng dụng của bạn.

+20

Bạn KHÔNG CẦN đặt hình ảnh vào từng ảnh; nền tảng sẽ chọn hình ảnh phù hợp nhất với mật độ của thiết bị và nó không chính xác với tỷ lệ phù hợp. Ngoài ra, đối với các ứng dụng nhắm mục tiêu 1.6 hoặc mới hơn, bạn nên đặt bitmap trong thư mục phù hợp với mật độ thiết kế của nó (không có ý nghĩa gì khi có bitmap không có đặc tả mật độ); tất nhiên các bitmap không giống như các bản vẽ XML khác nhau thường không có nhu cầu như vậy và nên ở trong thư mục đơn giản. Xem thêm: http://developer.android.com/guide/topics/resources/resources-i18n.html#AlternateResources – hackbod

+4

LINT sẽ khiếu nại nếu bạn đặt bitmap có thể mở rộng trong thư mục/drawable. Nó hiện đang dành cho các mục không có mật độ, chẳng hạn như các bản vẽ dựa trên xml. –

5

Dưới đây là tham chiếu đến multi device options.

Như đã nói bởi @CommonsWare, bạn không cần để đặt tài nguyên vào bất kỳ thứ gì nhưng res/layout/hoặc drawable/nhưng nếu bạn muốn chương trình của mình có trải nghiệm tốt hơn trên nhiều thiết bị có màn hình/mật độ khác nhau/ngôn ngữ bạn có thể muốn xem xét rằng bạn có tùy chọn đó.

1

Cũng thú vị, mặc dù không dành riêng cho hình ảnh, là cách android xử lý tài nguyên. Nó cung cấp cho họ một thứ tự tải, trong đó cụ thể hơn có nghĩa là nó sẽ được chọn hơn ít cụ thể hơn.

Ví dụ: bạn có ba giá trị Chuỗi trong chuỗi.xml trong thư mục giá trị của mình. Bạn cũng có một chuỗi cụ thể trong một thư mục có tên là values-en. Khi android mở ứng dụng của bạn và miền địa phương của bạn khớp với en, nó sẽ tải hai giá trị mặc định từ thư mục giá trị và chuỗi thứ ba, cụ thể hơn, từ các giá trị-en. Nếu ngôn ngữ của bạn là ru, nó sẽ chỉ sử dụng mặc định thay vì bạn không có thư mục giá trị-ru.

Điều này cũng đúng đối với hình ảnh. Nếu android không thể tìm thấy hình ảnh cho biến thể màn hình cụ thể của bạn, nó sẽ sử dụng mặc định từ thư mục drawable.

Theo tôi, thực tiễn tốt là có giá trị/hình ảnh mặc định trong thư mục chung của bạn như giá trị/giá trị có thể vẽ và giá trị/hình ảnh cụ thể trong các thư mục cụ thể. Bằng cách này, cả hai thiết bị hiện tại và tương lai sẽ ít nhất có cách để hiển thị nội dung của bạn cho đến khi bạn có thể cung cấp các phiên bản cụ thể.

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