Проблемы совместимости Android 4.0 с Canvas.clipPath - PullRequest
3 голосов
/ 07 января 2012

В последнее время мое приложение получило довольно много комментариев о том, что «это не работает» на Android Ice Cream Sandwich с CM9. Я не могу воспроизвести ошибку на эмуляторе под управлением Android 4.0, и благодаря тому, как работает Android Market, я не могу связаться с этими людьми, чтобы узнать подробности.

К счастью, одно сообщение об ошибке аварии попалось на глаза. Я использую Canvas.clipPath для рисования закругленных углов ... и похоже, что некоторые телефоны выдают UnsupportedOperationException при попытке использовать эту функцию. Беглый взгляд на Google показывает, что при использовании аппаратного ускорения в Android 4.0 возникает проблема, поэтому это потенциальная причина получения комментариев.

Вопрос в том, что происходит? Не было ли аппаратное ускорение приложений в предыдущих версиях Android? Почему такая общая функция не поддерживается? Какой обходной путь?

Пример использования Canvas.clipPath можно найти в моем другом посте. Проверьте принятый ответ здесь: Закругленные углы Android в ListView

Заранее спасибо

Ответы [ 2 ]

6 голосов
/ 10 апреля 2012

В ICS аппаратное ускорение было включено по умолчанию.До 4.0 по умолчанию аппаратное ускорение было отключено.Аппаратное ускорение не поддерживает clipPath (и некоторые другие операции, см. Подробнее здесь http://android -developers.blogspot.com / 2011/03 / android-30-hardware-acceleration.html ) Я сталкиваюсь ста же проблема.В качестве быстрого исправления я отключу ускорение для всего приложения, а позже перепишу код, чтобы не использовать clipPath

2 голосов
/ 27 декабря 2012

Вы можете отключить аппаратное ускорение только в определенном представлении, которое вызывает проблемы.Проверьте мой ответ здесь: https://stackoverflow.com/a/14054331/596708

...