Я использую кнопку с PNG фона для функции CopyToClipboard в моем приложении (используются около 6-7 раз в различном фрагменте). Поскольку изображения должно быть небольшим для моей цели, я увеличил площадь моего образа, поставив в дополнительной прозрачной области вокруг изображения так, чтобы я мог увеличить размер кнопки для интерактивной области но сохранить изображения small (Я знаю, что он неэффективен, и с тех пор я разработал лучший способ добиться этого).Огромного скачок в потреблении памяти при использовании с большим детские прозрачной области
Я заметил огромные шипы позже после загрузки некоторых других изображений (большие изображения размером около 150kb), и после много отладки (и я имею в виду много!), Я обнаружил, что проблема была не из-за большие изображения, но из-за изображения CopyToClipboard, имеющего размер всего 8 КБ !!! Переход на прежнее изображение CopyToClipboard (с меньшей прозрачной областью) привел к тому, что потребление памяти возобновилось.
Мой вопроспочему это произошло? Для такого маленького изображения для создания таких огромных шипов (более удвоил потребление памяти из предыдущего) и сделал приложение медленным, довольно озадачивающим.
Изображение, показанное ниже: Белая область - это прозрачная область. Размер моей кнопки: 15dp x 15dp.
Повторяю, Мой вопроспочему это произошло? Не решение для него, так как я уже решил проблему.
У меня была догадка, что это может быть связано с разрешением. В основном вы говорите мне, что этот всплеск произошел, потому что разрешение изображения было настолько высоким, и внутреннее его хранение в Bitmap показало эффект этого ** правильно? –
@KaushikNP, в основном, да. Но это не похоже на ошибку Android или Bitmap, это просто то, как битмапы представлены в памяти - как необработанный массив пикселей. На диске они представлены как эффективно закодированные структуры, поэтому они занимают гораздо меньше места. – Dimezis
Спасибо, Димезис. На самом деле существует большая разница в разрешении для обоих изображений, поэтому это кажется наиболее вероятным. Ошибка, которую я сделал, не учитывала разрешение для битмапов, а просто проверяла размер. –