2011-01-25 58 views
7

Chúng tôi đang cố gắng mô phỏng các thiết bị có mật độ 320 dpi mới trong Android 2.3 - chẳng hạn như Archos 101, và dường như chúng tôi không thể xác định trình giả lập mật độ như vậy, ngay cả sau khi tải xuống phiên bản 2.3 sdk mới nhất.Mật độ mô phỏng 320 dpi trên trình giả lập Android

Tôi thực sự sẽ đánh giá cao một số ý tưởng về vấn đề này :)

Rất cám ơn!

Trả lời

3

Bạn luôn có thể xác định mật độ tùy chỉnh và độ phân giải cho các thiết bị ảo của mình.

Nếu bạn đang sử dụng Eclipse, hãy truy cập New, nhập tên và chọn phiên bản SDK, nhấn tùy chọn Resolution trong phần Skin và đặt độ phân giải bạn cần. Trong phần Hardware, hãy chỉnh sửa tùy chọn mặc định ABstracted LCD Density thành giá trị mong muốn của bạn và nhấn nút Create AVD.

Khi bạn nhấn nút Start trong Trình quản lý AVD thì bạn sẽ có cửa sổ bật lên nơi bạn có thể chọn Scale display to real size. Ở đó bạn phải thiết lập kích thước màn hình thật của thiết bị và màn hình dpi của bạn. Bạn có thể nhấn dấu chấm hỏi ở bên phải của trường nhập đó và để cho máy tính tính toán nó cho bạn dựa trên kích thước màn hình của bạn.

+0

Cảm ơn bạn đã phản hồi. Đáng buồn thay, chúng tôi đã cố gắng thiết lập mật độ 320dpi bên trong trình quản lý AVD, nhưng trong trình mô phỏng nó bằng cách nào đó được đặt thành 240dpi. Tôi nghĩ rằng tôi đã đọc một nơi nào đó về vấn đề này và tôi hy vọng rằng có thể có một cách giải quyết hoặc một sửa chữa có thể cho điều này, vì đây là một vấn đề khá mới. –

+0

Thú vị. Tôi chưa đọc về vấn đề này. Bạn có thể thử tìm và đăng liên kết đó không? –

+1

Tôi đã thành công để tìm thấy một bài đăng như vậy ngày hôm qua mà không cần tốn nhiều thời gian cho nó, nhưng thật đáng buồn bây giờ tôi dường như không thể tìm thấy nó. Tôi nghĩ rằng đó là bên trong các nhóm phát triển android chính thức của google. Trong mọi trường hợp, mã của tôi nhận được mật độ như sau, và nó luôn luôn trả về 240 cho cấu hình màn hình mới của Archos: Hiển thịMàn hình hiển thịMetrics = new DisplayMetrics(); getWindowManager(). GetDefaultDisplay(). GetMetrics (displayMetrics); mật độ int cuối cùng = displayMetrics.densityDpi; –

2

Từ những gì tôi hiểu Android phân loại kích thước màn hình và mật độ vì vậy tôi nghĩ rằng nó xử lý 240dpi giống như 320dpi, tức là mật độ cao. Ngoài ra còn có một tùy chọn tiếp theo lên đó là mật độ cao thêm. Tôi tìm thấy thông tin này trong tài liệu tham khảo dành cho nhà phát triển Android, xem http://developer.android.com/guide/topics/fundamentals.html và phần phía dưới được gọi là Tuyên bố yêu cầu ứng dụng. Tôi có thể hoàn toàn sai nhưng nghĩ rằng nó đáng giá một tiếng hét.

6

Trong quản lý AVD nếu bạn chọn một Built-in da sau đó mật độ LCD liệu tóm tắt được bỏ qua và nó sẽ thiết lập mật độ như đã mô tả ở đây:

Emulator Skins (từ http://developer.android.com/tools/revisions/platforms.html)

Nền tảng tải bao gồm các giao diện giả lập sau:

  • QVGA (240x320, mật độ thấp, màn hình nhỏ)
  • WQVGA400 (240x400, mật độ thấp, màn hình bình thường)
  • WQVGA432 (240x432, mật độ thấp, màn hình bình thường)
  • HVGA (320x480, mật độ trung bình, màn hình bình thường)
  • WVGA800 (480x800, mật độ cao, màn hình bình thường)
  • WVGA854 (480x854 mật độ cao, màn hình bình thường)
  • WXGA720 (1280x720, mật độ cực cao, màn hình bình thường)
  • WSVGA (1024x600, mật độ trung bình, màn hình lớn)
  • WXGA800-7in (1280x800, mật độ cao, màn hình lớn) mới
  • WXGA800 (1 280x800, mật độ trung bình, màn hình xlarge)

Nếu bạn muốn đặt mật độ LCD trừu tượng của riêng mình, bạn cần xác định độ phân giải của riêng mình theo cách thủ công bằng cách nhấp vào nút radio Độ phân giải.

Dưới đây là một số mã, bạn có thể sử dụng để kiểm tra điều này:

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
int density = metrics.densityDpi; 
    if (density == DisplayMetrics.DENSITY_HIGH) { 
     Toast.makeText(this, "DENSITY_HIGH... Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
    } 
    else if (density == DisplayMetrics.DENSITY_MEDIUM) { 
     Toast.makeText(this, "DENSITY_MEDIUM... Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
    } 
    else if (density == DisplayMetrics.DENSITY_LOW) { 
     Toast.makeText(this, "DENSITY_LOW... Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
    } 
    else { 
     Toast.makeText(this, "Density is neither HIGH, MEDIUM OR LOW. Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
    } 
6

Đó là khá đơn giản.

Sửa đổi thuộc tính hw.lcd.density=320 tại tệp cấu hình avd: /Users/yourUserName/.android/avd/CustomDevice_API_19.avd/config.ini và khởi động lại thiết bị ảo của bạn. Tôi đã thử nghiệm nó, và nó hoạt động với tôi!

Warnning: Hãy chắc chắn rằng bạn thiết lập mật độ đúng, nếu không bạn sẽ nhận được một lỗi: qemu: available lcd densities are: 120, 160, 213, 240, 280, 320, 360, 400, 420, 480, 560, 640

BTW Android Công cụ SDK phiên bản của tôi là 25.2.5.

+0

hoạt động hoàn hảo. cảm ơn! Tôi đã thực hiện các tính toán và thiết lập kích thước màn hình bằng inch để những gì nên đã kích hoạt 213dp nhưng nó đã được lựa chọn 240 thay thế. Chỉnh sửa 'config.ini' đã sửa lỗi đó và bây giờ trình mô phỏng của tôi khớp chính xác với máy tính bảng mà tôi đang phát triển. – gMale

+0

tuyệt vời, đã làm việc, bây giờ tôi có thể mô phỏng thiết bị của mình trên trình giả lập, chính xác! – AVEbrahimi

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