2012-02-13 13 views
9

Tôi muốn biết tài nguyên có thể kéo nào được sử dụng trong khi chạy ứng dụng từ ldpi, mdpi, hdpi hoặc xhdpi.Làm thế nào để tìm ra tài nguyên drawble được sử dụng?

+0

[Hãy nhìn vào bài viết này] (http://stackoverflow.com/a/4766229/593709) –

+0

tôi đã kết thúc việc tạo ra một ứng dụng cho một số thời gian trước đây: https://play.google. com/store/apps/details? id = com.roysolberg.android.developertools –

Trả lời

7

Bạn sẽ có thể để có được thuộc tính hiển thị của thiết bị của bạn như mô tả here và sau đó xác định những nguồn lực đang được sử dụng trong thời gian chạy bằng cách so sánh kết quả với danh sách này:

  • ldpi: Màn hình mật độ thấp; khoảng 120 dpi.
  • mdpi: Màn hình mật độ trung bình (trên màn hình HVGA truyền thống); khoảng 160dpi.
  • hdpi: Màn hình có mật độ cao; khoảng 240dpi.
  • xhdpi: Màn hình mật độ cao bổ sung; khoảng 320dpi. Đã thêm trong API Cấp 8
  • nodpi: Điều này có thể được sử dụng cho tài nguyên bitmap mà bạn không muốn được thu nhỏ để khớp với mật độ thiết bị.
  • tvdpi: Màn hình ở đâu đó giữa mdpi và hdpi; khoảng 213dpi. Đây không được coi là nhóm mật độ "chính". Nó chủ yếu dành cho TV và hầu hết các ứng dụng không cần đến nó - việc cung cấp tài nguyên mdpi và hdpi là đủ cho hầu hết các ứng dụng và hệ thống sẽ mở rộng quy mô cho phù hợp. vòng loại này đã được giới thiệu với mức API 13.

Từ thông tin này, bạn có thể suy ra những điều sau đây, mà cũng có thể là thích hợp cho câu hỏi của bạn:

Có một 3: mở rộng quy mô 8: 4: 6 tỷ lệ giữa bốn mật độ chính (bỏ qua mật độ tvdpi). Vì vậy, một bitmap 9x9 trong ldpi là 12x12 trong mdpi, 18x18 trong hdpi và 24x24 trong xhdpi.

1

Đây không phải là một câu trả lời chính xác, nhưng bạn đã thực hiện một cái nhìn tại địa chỉ: http://developer.android.com/guide/practices/screens_support.html

ldpi: Tài nguyên cho mật độ thấp (ldpi) màn hình (~ 120dpi)
mdpi: Tài nguyên cho trung mật độ (mdpi) màn hình (~ 160dpi)
hdpi: Tài nguyên cho mật độ cao (hdpi) màn hình (~ 240dpi)
xhdpi: Tài nguyên cho thêm mật độ cao (xhdpi) màn hình (~ 320dpi)

Đây là những chung hướng dẫn, và nó sẽ không hoàn hảo nhưng đó là một khởi đầu khá tốt.

4

Chúng tôi có thể xác định điều này bằng cách biết mật độ màn hình của thiết bị.

getResources().getDisplayMetrics().densityDpi 

Nó sẽ là DENSITY_LOW, DENSITY_MEDIUM hoặc DENSITY_HIGH.

1

Mở tệp xml từ thư mục bố cục. Ở phía dưới, bạn sẽ tìm thấy tab bố trí đồ họa. Ở đó bạn sẽ có thể xem đồ họa của tập tin xml của bạn. Ở góc trên cùng bên trái, chọn độ phân giải khác nhau mà bạn muốn thử nghiệm có thể vẽ được. Nó sẽ làm mới xem cho phù hợp.

0

Đây là mã mẫu để tìm điều đó. Đơn giản chỉ cần đặt một số drawables khác nhau trong các thư mục khác nhau và kiểm tra những hình ảnh được chọn bởi các thiết bị tự động.

http://droidschools.com/archives/63

3

Trước tiên, bạn phải có mật độ thiết bị của mình.

int density= getResources().getDisplayMetrics().densityDpi; 

switch(density) 
{ 
case DisplayMetrics.DENSITY_LOW: 
    Toast.makeText(context, "LDPI", Toast.LENGTH_SHORT).show(); 
    break; 
case DisplayMetrics.DENSITY_MEDIUM: 
    Toast.makeText(context, "MDPI", Toast.LENGTH_SHORT).show(); 
    break; 
case DisplayMetrics.DENSITY_HIGH: 
    Toast.makeText(context, "HDPI", Toast.LENGTH_SHORT).show(); 
    break; 
case DisplayMetrics.DENSITY_XHIGH: 
    Toast.makeText(context, "XHDPI", Toast.LENGTH_SHORT).show(); 
    break; 
} 
Các vấn đề liên quan