Android AVD zeigt keine angemessene Skalierung an

Wie repariere ich die Anzeige auf meinem Android AVD? Die Benutzeroberfläche ist völlig aus dem Ruder gelaufen. Ich verwende die folgenden Befehlszeilenoptionen, um das AVD zu starten, aber nichts, was ich in den Optionen „scale“ und „dpi-device“ tue, hilft, die durcheinandergebrachte Anzeige zu beheben (siehe Beispiel-Screenshot). Ich verwende Arch Linux mit dem neuesten proprietären Nvidia-Treiber 346.35. Jede Hilfe wird sehr geschätzt.

Befehl:

$ emulator -verbose -scale 0.9 -dpi-device 480 -noaudio -no-boot-anim -noskin -no-snapshot @lollipop -qemu -m 1536 -enable-kvm

Außerdem habe ich laut diesem StackOverflow-Beitrag Folgendes getan:

$ adb shell setprop qemu.sf.lcd_density 480
$ adb shell stop
$ adb shell start

Dies hat an der durcheinandergebrachten Anzeige auf meinem Emulator nichts geändert.

Beachten Sie, dass ich die Option verwenden muss, -noskinda sie sich sonst weigert, den Emulator für mich zu starten.

AVD-Anzeige 2 AVD-Anzeige 1

Antworten (1)

Ich starte nicht über die Befehlszeile, aber diese Frage kam auf, als ich versuchte, ein ähnliches Problem zu lösen.

Ich habe es schließlich gelöst, indem ich den hw.lcd.densityWert in der .android/avd/<avd_name>.avd/config.iniDatei durch den Wert aus dieser Antwort ersetzt habe , der dem Wert in der Skin- hardware.iniDatei am nächsten kommt (in meinem Fall ist das at <android-studio-location>/plugins/android/lib/device-art-resources/<skin-name>/hardware.ini).

In meinem Fall emulieren ich ein Samsung Galaxy S6, und der von Samsung bereitgestellte Skin hat ein hw.lcd.densityvon 200, aber die bereitgestellten Abmessungen sind 1440x2560und die bereitgestellten Hintergrundbilder sind klein, sodass der Bildschirm in einen viel kleineren Raum passt ( 474x839), Die config.iniDatei hat also einen hw.lcd.densityWert von 640. Das Verringern auf 213und das Neustarten des Emulators behebt das Problem (aber ich denke, es emuliert das Bildschirmbild nicht ganz genau. Ich weiß nicht, ob es besser ist, als nur einen anderen Wert für die Bildschirmauflösung zu verwenden).