Как исправить отображение на моем Android AVD? Пользовательский интерфейс совершенно не в порядке. Я использую следующие параметры командной строки для запуска AVD, но ничего из того, что я делаю в параметрах «масштаб» и «dpi-устройство», не помогает исправить испорченное отображение (см. пример снимка экрана). Я использую Arch Linux с последним проприетарным драйвером Nvidia 346.35. Любая помощь приветствуется.
Команда:
$ emulator -verbose -scale 0.9 -dpi-device 480 -noaudio -no-boot-anim -noskin -no-snapshot @lollipop -qemu -m 1536 -enable-kvm
Кроме того, согласно этому сообщению StackOverflow , я также сделал:
$ adb shell setprop qemu.sf.lcd_density 480
$ adb shell stop
$ adb shell start
Это не повлияло на испорченный дисплей на моем эмуляторе.
Обратите внимание, что я должен использовать эту -noskin
опцию, потому что в противном случае она отказывается запускать эмулятор для меня.
Я не запускаю из командной строки, но этот вопрос возник, когда я пытался решить аналогичную проблему.
В конце концов я решил это, заменив hw.lcd.density
значение в .android/avd/<avd_name>.avd/config.ini
файле значением из этого ответа , ближайшим к значению в файле скина hardware.ini
(в моем случае это <android-studio-location>/plugins/android/lib/device-art-resources/<skin-name>/hardware.ini
).
В моем случае я эмулирую Samsung Galaxy S6, и предоставленный Samsung скин имеет размер hw.lcd.density
, 200
но размеры, которые они предоставляют, 1440x2560
и предоставленные фоновые изображения малы, поэтому они позволяют экрану вписаться в гораздо меньшее пространство ( 474x839
), поэтому config.ini
файл имеет hw.lcd.density
значение 640
. Уменьшение его до 213
и перезапуск эмулятора устраняет проблему (но я думаю, что это не совсем точно эмулирует внешний вид экрана. Я не знаю, лучше ли это, чем просто использовать другое значение разрешения экрана).