2011-01-25 3 views
7

Мы пытаемся эмулировать устройства с новой плотностью 320 точек на дюйм в Android 2.3 - , такие как Archos 101, , и мы, похоже, не можем определить эмулятор с такая плотность, , даже после загрузки последней версии 2.3 sdk.Эмуляция эмуляции 320 dpi на эмуляторе Android

Я был бы очень признателен некоторые идеи на этом :)

Большое спасибо!

ответ

3

Вы всегда можете определить индивидуальную плотность и разрешение для своих виртуальных устройств.

Если вы используете Eclipse, перейдите к Window - Android SDK and AVD Manager, там нажать кнопку New, введите имя и выберите версию SDK, нажмите опцию Resolution вниз в разделе Skin и установите разрешение вам нужно. В разделе Hardware отредактируйте параметр по умолчанию ABstracted LCD Density на нужное значение и нажмите кнопку Create AVD.

Когда вы нажмете кнопку Start в AVD Manager, вы получите всплывающее окно, в котором вы можете выбрать Scale display to real size. Там вы должны установить реальные размеры экрана устройства и ваши мониторы. Вы можете нажать вопросительный знак справа от этого поля ввода и позволить калькулятору рассчитать его для вас на основе размера ваших мониторов.

+0

Благодарим за отзыв. К сожалению, мы уже пытались установить плотность 320dpi внутри AVD-менеджера, но в эмуляторе она каким-то образом настроена на 240 dpi. Я думаю, что я где-то читал об этой проблеме, и я надеялся, что, возможно, есть обходное решение или возможное решение для этого, так как это довольно новая проблема. –

+0

Интересно. Я еще не читал об этой проблеме. Не могли бы вы попытаться найти и опубликовать эту ссылку? –

+1

Мне удалось найти такое сообщение вчера, не дав для этого много времени, но, к сожалению, сейчас я не могу найти его. Я думаю, что это было в официальных группах разработчиков Google Android. В любом случае мой код получения плотности следующий, и он всегда возвращает 240 для нового профиля экрана Archos: DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager(). GetDefaultDisplay(). GetMetrics (displayMetrics); final int плотность = displayMetrics.densityDpi; –

2

Из того, что я понимаю, Android категоризирует размер и плотность экрана, поэтому я думаю, что он обрабатывает 240 точек на дюйм так же, как 320 dpi, т. Е. Это высокая плотность. Существует также следующий вариант, который является дополнительной высокой плотностью. Я нашел эту информацию в справочнике разработчика Android, см. http://developer.android.com/guide/topics/fundamentals.html, и раздел в нижней части, называемый объявлением требований приложения. Возможно, я ошибаюсь, но думал, что это стоит кричать.

6

В менеджере AVD если вы выбираете встроенный в коже, то LCD плотность отведенной игнорируется, и он будет установить плотность, как описано здесь:

эмуляторы Skins (от http://developer.android.com/tools/revisions/platforms.html)

Загружаемый платформы включает в себя следующий эмуляторе шкуру:

  • QVGA (240х320, низкая плотность, маленький экран)
  • WQVGA400 (240х400, низкая плотность, нормальный экран)
  • WQVGA432 (240x432, низкая плотность, нормальный экран)
  • HVGA (320х480, средняя плотность, нормальный экран)
  • WVGA800 (480х800, высокая плотность, нормальный экран)
  • WVGA854 (480x854 высокой плотности, нормальный экран)
  • WXGA720 (1280x720, экстра-высокая плотность, нормальный экран)
  • WSVGA (1024x600, средняя плотность, большой экран)
  • WXGA800-7in (1280x800, высокая плотность, большой экран) новой
  • WXGA800 (1 280x800, средняя плотность, xlarge экран)

Если вы хотите установить собственную абстрактную плотность ЖК-дисплея, вам нужно будет определить свое собственное разрешение вручную, щелкнув переключатель «Разрешение».

Вот некоторые код, который вы можете использовать, чтобы проверить это:

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

Это довольно просто.

Измените атрибут hw.lcd.density=320 в файле конфигурации avd: /Users/yourUserName/.android/avd/CustomDevice_API_19.avd/config.ini и перезагрузите виртуальное устройство. Я уже тестирую его, и он работает со мной!

Warnning: Убедитесь, что вы установите правильную плотность, в противном случае вы получите сообщение об ошибке: qemu: available lcd densities are: 120, 160, 213, 240, 280, 320, 360, 400, 420, 480, 560, 640

BTW мой Android SDK Tools версии 25.2.5.

+0

работал отлично. благодаря! Я выполнил расчеты и установил размер экрана в дюймах до того, что должно было вызвать 213dp, но вместо этого он выбрал 240. Редактирование 'config.ini' исправлено, и теперь мой эмулятор точно соответствует табло, для которого я разрабатываю. – gMale

+0

Удивительный, сработавший, теперь я могу точно имитировать свое устройство на эмуляторе! – AVEbrahimi

 Смежные вопросы

  • Нет связанных вопросов^_^