2013-02-25 51 views
18

Tôi là thương hiệu mới với Android và tôi đang sử dụng Eclipse ADT để tạo một ứng dụng đơn giản. Ứng dụng này có nút thay đổi hình nền của nó dựa trên lần nhấp của người dùng.Android - Thêm hình ảnh vào dự án

Tôi nhận thấy rằng có 4 thư mục cho hình ảnh trong dự án của tôi: drawable-hdpi, drawable-ldpi, drawable-mdpi, and drawable-xhdpi.

và tôi cũng nhận thấy rằng các hình ảnh hiện có trong đó (biểu tượng trình khởi chạy) có tất cả các kích thước khác nhau.

Điều này có nghĩa là tôi phải sử dụng một số phần mềm chỉnh sửa hình ảnh để tạo một hình ảnh cho mỗi độ phân giải cho từng hình ảnh của tôi không? Hoặc (hy vọng) là có một cách để nhập một hình ảnh và có điều này được thực hiện cho tôi tự động?

Cảm ơn!

Trả lời

45

Hình ảnh và các tệp hình ảnh khác được lưu trữ trong một hoặc nhiều thư mục có thể kéo. Nếu chỉ trong một thư mục, Android sẽ mở rộng hình ảnh khi cần. Nếu sử dụng nhiều hơn một thư mục, Android sẽ chọn hình ảnh có kích thước phù hợp.

  • drawable-ldpi - hình ảnh mật độ thấp
  • drawable-mdpi - hình ảnh mật độ Medium
  • drawable-hdpi - hình ảnh mật độ cao
  • drawable-xhdpi - Extra mật độ cao hình ảnh (hiển thị tức là võng mạc giống như)
  • drawable-xxhdpi - Hình ảnh có mật độ cực cao bổ sung (thiết bị như Nexus 10, Samsung Galaxy S4, HTC One và Sony Xperia Z)
  • drawable-xxxhdpi - Hình ảnh có mật độ cao gấp ba (Nexus 6 and 9)

(Lưu ý bên: Tệp XML cũng có thể được ghi và lưu trữ dưới dạng bản vẽ. Các loại tệp này có thể kiểm soát khi sử dụng nhiều hình ảnh dựa trên trạng thái của chế độ xem hoặc các cài đặt hình ảnh khác như độ dốc, đường viền, v.v.)

Vì vậy, số nên bạn làm gì?

Để có kết quả tốt nhất (từ Android developer docs):

Để tạo những hình ảnh này, bạn nên bắt đầu với nguồn nguyên liệu của bạn ở định dạng vector và tạo ra những hình ảnh cho mỗi mật độ sử dụng quy mô kích thước sau:

  • xxxhdpi: 4,0
  • xxhdpi: 3,0
  • xhdpi: 2,0
  • hd pi: 1,5
  • tvdpi: 1.33 (chỉ TV)
  • mdpi: 1.0 (cơ bản)
  • ldpi: 0,75

Điều này có nghĩa rằng nếu bạn tạo ra một hình ảnh 200x200 cho các thiết bị xhdpi, bạn nên tạo cùng một tài nguyên ở 150x150 cho hdpi, 133x133 cho tvdpi, 100x100 cho mdpi và cuối cùng là hình ảnh 75x75 cho các thiết bị ldpi.

Nếu bạn chỉ muốn sử dụng một hình ảnh và để cho quy mô Android dành cho bạn:

Hơn 75% các thiết bị Android hiện nay có hdpi hoặc cao hơn độ phân giải, theo Dashboard on the Android Developer site. Vì vậy, nếu bạn tạo một hình ảnh ở hdpi, ví dụ, nó sẽ trông hoàn hảo trên khoảng một phần ba thiết bị, mở rộng cho một số thiết bị và giảm tỷ lệ xuống khoảng 25% thiết bị. Nói chung tôi nghĩ rằng bạn sẽ tốt hơn giảm quy mô hơn là mở rộng quy mô, quá.

+1

cảm ơn rất nhiều. câu trả lời tốt đẹp :) –

+1

Cảm ơn! Gần đây tôi đã nghiên cứu vấn đề này. –

+0

Tôi có 20 hình ảnh. Mỗi người trong số họ là 100x100px. Tôi đoán điều đó có nghĩa là tôi phải tạo thêm 60 hình ảnh, mỗi bức ảnh cho 3 mật độ khác. Bạn có thể giới thiệu một chương trình để đơn giản hóa tác vụ này không? Tôi sử dụng paint.net nhưng nó không xử lý hàng loạt. –

3

Điều này có nghĩa là tôi phải sử dụng một số phần mềm chỉnh sửa hình ảnh để tạo một hình ảnh cho từng độ phân giải cho từng hình ảnh của tôi không? Hoặc (hy vọng) là có một cách để nhập một hình ảnh và có điều này được thực hiện cho tôi tự động?

Nếu bạn đã có nguồn cao độ phân giải (hoặc các định dạng đồ họa vector) của hình ảnh của bạn, bạn có thể sử dụng Android Asset Studio để tạo ra các biểu tượng/hình ảnh từ hình ảnh nguồn của riêng bạn cho mỗi mật độ (trừ xxhdpi). Bạn cũng có thể tạo biểu tượng/hình ảnh từ Android clipart mặc định, có thể được theo chủ đề cho các phiên bản Android khác nhau. Điều này sẽ giúp bạn tiết kiệm một số rắc rối của thay đổi kích thước và tiết kiệm với một công cụ chỉnh sửa hình ảnh.

+0

Tôi sẽ kiểm tra công cụ tài sản android ngay bây giờ! –

+0

Công cụ sẽ thêm ".9" vào hình ảnh mà nó tạo ra (ví dụ: image.9.png). Khi gọi vẽ được, chỉ cần sử dụng "hình ảnh" (bỏ qua cả ".9" và phần mở rộng). Mất một chút thời gian để tìm ra điều này. – TekiusFanatikus

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