Отображаемая плотность разрешения рисования делится пополам при каждом запуске программы

1

У меня есть приложение для Android, которое использует оба чертежа из собственной папки ресурсов и из папки ресурсов пакета, связанного через общий идентификатор пользователя.

Я столкнулся с уменьшением плотности пикселей drawables (что приводит к артефактам интерполяции) только из собственных ресурсов ** каждый раз, когда приложение запускается, а связанные с ним *** выглядят нормально.

Выполнение приложения примерно в 10-й раз приводит к сбою *. Затем загрузка в первый раз отображает все изображения в исходной плотности.

Приложение основано на SDK версии 1.6 и не имеет конкретных ресурсов, зависящих от плотности, что означает строго разработанное для 320 x 480 пикселей. Проблема не возникает ни на устройстве с соответствием размера экрана, как указано выше, ни в эмуляторе с одинаковым и большим размером экрана. В последнем случае изображения правильно масштабируются для соответствия.

Я не знаю, где (в коде), чтобы начать искать причины этой ошибки.

Заранее благодарим за любые подсказки!


EDIT:
Следует также упомянуть, что несколько Dialogs (например, ProgressDialog) рисуются вдвое меньше, чем раньше, при перезагрузке приложения.

* Выход журнала при сбое приложения:

ERROR/AndroidRuntime(23632): FATAL EXCEPTION: main ERROR/AndroidRuntime(23632): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp/com.myapp.Paketliste}: android.view.InflateException: Binary XML file line #20: Error inflating class <unknown> ERROR/AndroidRuntime(23632): Caused by: android.view.InflateException: Binary XML file line #20: Error inflating class <unknown> ERROR/AndroidRuntime(23632): Caused by: java.lang.reflect.InvocationTargetException ERROR/AndroidRuntime(23632): Caused by: android.content.res.Resources$NotFoundException: File res/drawable/buttons.png from drawable resource ID #0x7f020016 ERROR/AndroidRuntime(23632): Caused by: java.lang.IllegalArgumentException: width and height must be > 0 WARN/ActivityManager(2461): Force finishing activity com.myapp/.Paketliste


* * Изображение, загруженное этими строками, выглядит следующим образом:

ImageView imageView_IconOfAnotherPackage = (ImageView) row
  .findViewById(R.id.paketliste_installed);

imageView_IconOfAnotherPackage
  .setImageResource(R.drawable.default_icon);

* * * Загрузка изображения, которое появляется БЕЗ ВЫПУСКА:

imageView_IconOfAnotherPackage
  .setImageDrawable(this
    .getPackageManager()
    .getResourcesForApplication('com.myotherapp')
    .getDrawable(0x7f020001)
  );
  • 0
    Не могли бы вы опубликовать код, где 1) вы загружаете свои ресурсы в память и 2) где вы устанавливаете свои ресурсы изображения в ImageView. И просто уточнить - вы испытываете такое поведение только на устройстве с большим размером экрана? Также становится хуже каждый раз, когда вы перезагружаете приложение?
  • 0
    Спасибо, Джозеф! Да, я не испытываю этого на экране размером с макет. И да, он становится все хуже (вдвое уменьшая разрешение изображений и размер диалогов) при каждой перезагрузке. Это в конечном итоге приводит к аварии.
Теги:
drawable
resolution

1 ответ

1
Лучший ответ

Я нашел сообщение, где парень предположительно имел ту же проблему (и нашел решение) здесь:

http://adrianvintu.com/blogengine/post/Force-Locale-on-Android.aspx

(через этот ответ: Настройка языка приложения в Android-настройках)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню