Android - данные обратного вызова изображения возвращают изображение, которое было черным или смешанным - PullRequest
3 голосов
/ 02 января 2012

Так что я использую камеру Android, чтобы делать снимки в приложении Android.Около 90% моих пользователей не имеют проблем, но остальные 10% получают изображение, которое возвращает чистый черный цвет или странное перемешивание пикселей.

Кто-нибудь еще видел такое поведение?или есть какие-то идеи, почему это происходит?

Примеры:

Черный: enter image description here

Перемешано: enter image description here

Ответы [ 3 ]

1 голос
/ 13 января 2012

Начиная с Android 4.0, они устанавливают для аппаратного ускорения значение по умолчанию в манифесте по умолчанию. Аппаратное ускорение холста не поддерживает картинки, и вы получите черный экран ...

1 голос
/ 07 января 2012

У меня были подобные проблемы, как это.Короче говоря, проблема: Отсутствуют данные.

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

Другой пример, где это может произойти.: Загрузка и загрузка изображений.Если пользователь внезапно отключает Wi-Fi / мобильную сеть, данные больше не могут быть переданы.В результате вы получите разбрызганное изображение.

Изображение будет отображаться / просматриваться нормально (где «хорошо» означает черный / разбрызганный, оно по-прежнему доступно для просмотра!), Но недопустимо внутри (отсутствует или повреждена информация).

Если это не слишком критично, вы можете попробовать переместить все данные в объект Bitmap (BitmapFactory.decode *) и проверить, является ли возвращенное Bitmap нулевым.Если да, возможно, данные повреждены.

Как вы можете догадаться, это всего лишь решение последствий проблемы.Лучшим способом было бы решить проблему пешком: обеспечить хорошее соединение с источником данных (достаточно большой, надежный буфер).Старайтесь избегать ненужных приведений (например, из char в int). Используйте правильный тип буферов (либо Reader / Writer для символьных потоков, либо InputStream / OutputStream для байтовых потоков).

0 голосов
/ 12 января 2012

Проверьте также, используете ли вы объект BitmapFactory.Options для создания растрового изображения или нет. Поскольку несколько методов этого объекта также делают растровое изображение поврежденным.

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