Как я могу получить корректный DisplayMetrics от AppWidget в Android?

Я должен определить экранную плотность во времени выполнения в Android AppWidget. Я настроил устройство эмулятора HDPI (avd). Если настроено обычный исполняемый проект, и вводит этот код в onCreate метод:

DisplayMetrics dm = getResources().getDisplayMetrics();
Log.d("MyTag", "screen density " + dm.densityDpi);

Этот производят, "экранируют плотность 240" как ожидалось.

Однако, если я настроил проект AppWidget и ввожу этот код в onUpdate метод:

DisplayMetrics dm = context.getResources().getDisplayMetrics();
Log.d("MyTag", "screen density " + dm.densityDpi);

Этот производят, "экранируют плотность 160". Я заметил, присоединение отладчик, что mDefaultDisplay член объекта Ресурсов здесь является пустым в случае AppWidget.

Точно так же, если я получаю ресурс во времени выполнения с помощью объекта Ресурсов, полученного из context.getResources () в AppWidget, это возвращает неправильный ресурс на основе экранной плотности. Например, у меня есть 60x60 пкс, drawable для mdpi, и 80x80 drawable для hdpi. Если я получаю этот объект Drawable, использующий context.getResources () .getDrawable (...), он возвращается 60x60 версия.

Там какой-либо путь состоит в том, чтобы правильно иметь дело с ресурсами во времени выполнения от контекста AppWidget?

Спасибо!

9
задан ManicBlowfish 14 April 2010 в 19:36
поделиться

1 ответ

Похоже на ошибку. Если вы можете создать образец проекта, демонстрирующего ошибку, опубликуйте проблему в системе отслеживания проблем Android . Если вы думаете об этом, добавьте сюда комментарий, указывающий на проблему.

1
ответ дан 3 November 2019 в 09:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: