3

最近我的應用程序收到了很多意見,「它不工作」與CM9 Android冰淇淋三明治。我無法在運行Android 4.0的模擬器上重現錯誤,並且由於Android市場的運作方式,我無法聯繫這些人詢問有關細節。Android 4.0兼容性問題與Canvas.clipPath

幸運的是,一個崩潰錯誤報告引起了我的注意。我正在使用Canvas.clipPath繪製圓角......並且看起來有些手機在嘗試使用該功能時會擲出UnsupportedOperationException。快速瀏覽谷歌顯示,在Android 4.0中使用硬件加速似乎是一個問題 - 所以這是收到評論的潛在原因。

問題是 - 發生了什麼事?在以前的android版本中加速的應用程序硬件不?爲什麼不支持這樣的通用功能?什麼是解決方法?

Canvas.clipPath的示例用法可以在我的其他文章中找到。這裏檢查接受的答案:Android rounded corners in ListView

在此先感謝

+0

我在我的應用程序中找到了同樣的東西。您可以在Manifest.xml中將android:hardwareAccelerated =「false」設置爲解決方法。這工作在蜂窩和推測是有效的ICS – CjS 2012-02-16 08:22:49

回答

6

在ICS,硬件加速功能是默認開啓。在4.0之前,默認情況是硬件加速關閉。 硬件加速不支持clipPath(和其他一些操作,請參閱這裏更多http://android-developers.blogspot.com/2011/03/android-30-hardware-acceleration.html) 我面臨同樣的問題。作爲快速修復,我將關閉整個應用程序的加速,稍後我將重寫代碼以避免使用clipPath

+0

你找到了ClipPath嗎? – 2012-05-03 12:36:00

+0

@Olyly Dixon號我想要硬件加速,所以我最終以不使用clipPath的不同方式重寫我的代碼。 – yoah 2012-05-04 14:21:11

+0

+1,哇,Android永遠不會讓我驚歎......沒有任何警告,例外,什麼都沒有,但是當你採用更新的SDK時,只有一半的繪圖代碼變成了NOP。 – mvds 2012-10-18 12:52:37

2

只能在導致問題的特定視圖上關閉硬件加速。看看我的答案在這裏:https://stackoverflow.com/a/14054331/596708

+0

理論上,是的 - 但它的bug。一些Android設備仍然會嘗試使用硬件加速。 – 2012-12-27 14:35:50

+0

真的嗎?我可以在哪裏可以看到更多的信息,哪些設備發生或有人遇到那麼? – ffleandro 2012-12-27 15:26:38

+0

這是可能的,android 4.0。*忽略java設置圖層到軟件的方式,開發人員選項可以覆蓋清單 – 2013-04-23 21:39:52