Эмуляция плотности 320 точек на дюйм на эмуляторе Android
Мы пытаемся эмулировать устройства с новой плотностью 320 точек на дюйм в Android 2.3 - например, Archos 101, и мы не можем определить эмулятор с такой плотностью, даже после загрузки последней версии 2.3 SDK.
Я был бы очень признателен за некоторые идеи об этом:)
Большое спасибо!
4 ответа
Это довольно просто.
Изменить атрибут hw.lcd.density=320
в конфигурационном файле avd: /Users/yourUserName/.android/avd/CustomDevice_API_19.avd/config.ini
и перезагрузите ваше виртуальное устройство. Я уже проверил это, и это работает для меня!
Предупреждение: убедитесь, что вы установили правильную плотность, в противном случае вы получите ошибку: qemu: available lcd densities are: 120, 160, 213, 240, 280, 320, 360, 400, 420, 480, 560, 640
Кстати, моя версия Android SDK Tools - 25.2.5.
В менеджере AVD, если вы выберете встроенный скин, плотность абстрагированного ЖК-дисплея игнорируется, и он будет устанавливать плотность, как описано здесь:
Скины эмулятора (от http://developer.android.com/tools/revisions/platforms.html)
Загружаемая платформа включает в себя следующие скины эмулятора:
- QVGA (240x320, низкая плотность, маленький экран)
- WQVGA400 (240х400, низкая плотность, нормальный экран)
- WQVGA432 (240x432, низкая плотность, нормальный экран)
- HVGA (320x480, средняя плотность, нормальный экран)
- WVGA800 (480x800, высокая плотность, обычный экран)
- WVGA854 (480x854 высокой плотности, обычный экран)
- WXGA720 (1280x720, сверхвысокая плотность, обычный экран)
- WSVGA (1024x600, средняя плотность, большой экран)
- WXGA800-7in (1280x800, высокая плотность, большой экран) новый
- WXGA800 (1280x800, средняя плотность, большой экран)
Если вы хотите установить собственную плотность абстрагированного ЖК-дисплея, вам необходимо определить собственное разрешение вручную, установив переключатель "Разрешение".
Вот некоторый код, который вы можете использовать для проверки этого:
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();
}
Вы всегда можете определить пользовательскую плотность и разрешение для ваших виртуальных устройств.
Если вы используете Eclipse, перейдите на Window - Android SDK and AVD Manager
Там ударил New
введите имя и выберите версию SDK, нажмите Resolution
вариант вниз в Skin
раздел и установите нужное разрешение. в Hardware
раздел изменить параметр по умолчанию ABstracted LCD Density
к вашему желаемому значению и нажмите Create AVD
кнопка.
Когда вы нажмете Start
Кнопка в диспетчере AVD, то вы получите всплывающее окно, где вы можете выбрать Scale display to real size
, Там вы должны установить для устройств реальный размер экрана и ваши мониторы dpi. Вы можете нажать на знак вопроса справа от этого поля ввода и позволить калькулятору рассчитать его для вас на основе размера ваших мониторов.
Из того, что я понимаю, Android классифицирует размер и плотность экрана, так что я думаю, что он обрабатывает 240 точек на дюйм так же, как 320 точек на дюйм, то есть это высокая плотность. Существует также следующая опция - сверхвысокая плотность. Я нашел эту информацию в справочнике разработчиков Android, см. http://developer.android.com/guide/topics/fundamentals.html и в нижней части раздел под названием "Объявление требований приложения". Я могу быть совершенно неправ, но подумал, что стоит кричать.