Установка BitmapDrawable tileMode заставляет приложение перезапускаться

1

В то время как на большинстве устройств мое приложение работает нормально, на некоторых устройствах (LG G3, Samsung Galaxy S6 до сих пор) я испытал странную ошибку, я не могу развернуть:

Установка tileMode (либо через XML, либо программно) на что-либо (clamp/repeat/mirror) на BitmapDrawable, то есть на обратную сторону макета, делает этот фон полностью черным, и перезапуск приложения через ~ 20 секунд - без каких-либо признаков каких-либо ошибок (никаких сообщений в LogCat не вызывается ни одним из этих обратных вызовов моей активности: onPause(), onStop(), onDestroy()).

Поскольку между этими зависаниями/сбоями в зависимости от используемого Bitmap была некоторая несогласованность, я начал играть с изображениями .png и понял, что я могу избавиться от (большинства) этих сбоев, если я уменьшу размер этих изображений (< 200x200).

Так как

  • есть еще некоторые сбои и

  • Я не могу быть уверен в этом пороге размера для всех устройств

Я все еще ищу общее решение, возможно, некоторые из вас могут мне помочь.

  • 0
    и для тех больших png (> 200x200), что произойдет, если вы не используете tileMode ?
  • 0
    Тогда все нормально, за исключением того, что изображение растягивается до размера макета.
Показать ещё 3 комментария
Теги:
android-bitmap
android-drawable

1 ответ

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

Хотя этот поток был не совсем похож на ту же проблему, что и у меня, это помогло мне случайно. Установка layerType рассматриваемого макета на software как

  • android:layerType="software", или

  • view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

сделал черный фон, и перезапуск приложений исчез.

Оказалось также, что уменьшение фоновых изображений не помогло решить проблему, но только заставляло ее появляться реже.

Спасибо за помощь pskink в любом случае!

  • 0
    Я так сильно люблю тебя прямо сейчас. Я провел последние 5 дней, 4+ часа каждый день, пытаясь диагностировать и решить эту проблему. Я собирался просто бросить разработку Android навсегда (без шуток). Моя грудь буквально взорвалась от волнения, когда я читал ваш ОП - это была точно такая же проблема, как и у меня, и android:layerType="software" , насколько я могу судить, полностью решил эту проблему. Ссылка на мою проблему . Я просто хотел, чтобы вы знали, насколько это полезно для меня.
  • 0
    Я точно знаю, о чем ты говоришь! : D Пришлось такое же усилие решить это и почти также уйти;)

Ещё вопросы

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