Эмулятор Android загружается неверной плотности - PullRequest
0 голосов
/ 29 октября 2010

Я пытаюсь просто протестировать мое приложение в настройках QVGA, но в 95% случаев, когда я запускаю созданный эмулятор QVGA, он загружает ресурсы, связанные с HVGA.У меня есть собственные растровые изображения, которые я включаю в свое приложение, поэтому для меня крайне важно иметь возможность проверить внешний вид.

Чтобы увидеть, как обрабатывается плотность, я добавил следующий код и отобразил результаты втост:

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);

// will either be DENSITY_LOW, DENSITY_MEDIUM or DENSITY_HIGH
int dpiClassification = dm.densityDpi;

// these will return the actual dpi horizontally and vertically
float xDpi = dm.xdpi;
float yDpi = dm.ydpi;

Output was -> DensityClass = 160 - xDpi = 164.75 - yDpi = 165.88

Возможно, я просто неправильно понимаю, но для начала, разве класс плотности не должен иметь значение 120?

Я создал эмулятор QVGA в диспетчере AVD сследующие настройки:

Target: 1.6 level 4
Hardware Property: Abstracted LCD Density = 120 (verified in config.ini file)

В моем файле манифеста я добавил следующее:

<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true"/>

В моей папке res у меня есть:

drawable
drawable-hdpi
drawable-ldpi
drawable-mdpi

Можеткто-нибудь подскажет, почему эмулятор не загружает отрисовки низкой плотности?Drawables в этом эмуляторе QVGA имеют тот же самый размер, что и Drawables в эмуляторе HVGA (не то, что я хочу), и да, я уменьшил изображения, прежде чем добавлять их в папку LDPI (значительно меньше).По непонятной причине, время от времени эмулятор действительно загружается правильно, и все отображается правильно, но, опять же, это происходит только в 5% случаев без видимой причины.

1 Ответ

1 голос
/ 29 октября 2010

Я боролся с тем, чтобы мое приложение возвращало среднюю плотность независимо от того, какой тип эмулятора я использовал некоторое время. Однажды я обнаружил, что операторы support-screen / anyDensity решили мою проблему. Я заметил, что документация была неправильной, сказав, что после уровня 4 вам не нужно это утверждение в файле манифеста. Тем не менее, я использую 2.2, так что это было неправильно.

В целом это может быть связано с вашей проблемой.

Что я действительно хотел отметить, так это эту веб-страницу. Не тратьте слишком много времени на QVGA, ваше время намного лучше проведено в другом месте, как вы можете видеть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...