Sự khác nhau giữa ba thư mục có thể kéo trong thư mục res trong hệ thống phân cấp dự án là gì? Nếu tôi có một hình ảnh để đưa vào một thư mục, tôi đặt nó vào thư mục nào?Các thư mục có thể chia sẻ trong thư mục res?
Trả lời
Tôi sẽ đoán rằng "ba thư mục có thể kéo" là drawable-ldpi
, drawable-mdpi
và drawable-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.
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 đó.
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ể.
- 1. Cho phép thư mục được chia sẻ!
- 2. Vagrant SSH không thể truy cập thư mục chia sẻ
- 3. Hai gốc vcs trong teamcity và thư mục chia sẻ
- 4. Chia sẻ hình ảnh png trong thư mục drawable
- 5. Thư mục tài liệu chia sẻ ứng dụng iOS
- 6. cách sao chép tệp vào thư mục chia sẻ capistrano
- 7. Tệp Thumbs.db trong thư mục res/drawable/hdpi
- 8. Các thư mục có thể chia sẻ cho các thiết bị cầm tay có độ phân giải cao
- 9. Eclipse: Chỉ định nhiều thư mục res như chỉ định nhiều thư mục src
- 10. Lỗi trong khi tải thư viện chia sẻ: 'libpcre.so.0: không thể mở được chia sẻ tập tin đối tượng: Không có tập tin hoặc thư mục'
- 11. Trộn các thư viện tĩnh và thư viện chia sẻ
- 12. Đường dẫn Thư viện được chia sẻ làm Thư mục thực thi
- 13. Kiểm tra xem thư mục không có tệp nào, nhưng thư mục này có thể chứa các thư mục con
- 14. lỗi khi tải thư viện được chia sẻ: libboost_system.so.1.45.0: không thể mở tệp đối tượng được chia sẻ: Không có tệp hoặc thư mục nào như vậy
- 15. CMake Error: TARGETS không có THƯ VIỆN THƯ VIỆN cho mục tiêu thư viện được chia sẻ
- 16. Danh sách các thư mục trong một thư mục, bỏ qua các tiểu thư mục ANT
- 17. Android: thư mục res được nhắm mục tiêu để gỡ lỗi trong eclipse
- 18. Tại sao Python không thể tìm thấy các đối tượng được chia sẻ trong các thư mục trong sys.path?
- 19. Tìm kiếm tệp trong thư mục có nhiều thư mục
- 20. Thư mục ZIP có thư mục con trong python
- 21. Lấy danh sách các thư mục trong một thư mục
- 22. Liệt kê tất cả các thư mục trong thư mục
- 23. Liệt kê tất cả các tệp và thư mục trong thư mục + thư mục con
- 24. Thư mục được chia sẻ âm đạo. Các liên kết tượng trưng
- 25. Tạo một thư mục con cho tất cả các thư mục trong thư mục
- 26. Không thể hiển thị các mục có thư viện AppCompat
- 27. MEF tải các plugin từ một thư mục chia sẻ trên mạng
- 28. Làm thế nào tôi có thể chia một thư mục với hàng ngàn hình ảnh thành nhiều thư mục con?
- 29. Khi nào thư viện được chia sẻ được coi là "giống nhau" cho mục đích chia sẻ?
- 30. Tùy chọn thư mục được chia sẻ cho vmware trong máy chủ ESXi
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
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. –