2011-03-22 59 views
3

我的一位同事建議我避免在我的移動應用中使用任何漸變,因爲手機無法處理渲染按鈕/背景上的漸變所需的工作負載等。我在呈現按鈕時沒有看到任何掛起或任何東西,但有沒有我應該避免的漸變?使用漸變會影響WP7的性能嗎?

回答

4

這取決於您在哪裏使用它。如果您正在比較SolidColorBrush和GradientBrush of course,則平臺需要做更多工作來渲染漸變,但這是微不足道的性能差異。

我能想到的唯一情況是,假設您在大型ListBox中使用複雜漸變並在ListBoxItems中使用它,這會使很多漸變得到實例化。在這種情況下,我寧願用低質量的JPEG替換漸變。 JPEG(圖像)會自動給我更多的系統級緩存,並且列表框的性能會比你在那裏提供矢量漸變更好。

但是,如果它是個別按鈕或其他控制樣式,使用漸變完全沒問題。 http://jobijoy.blogspot.com/2011/05/wp7dev-tip-2-few-things-to-remember-on.html

3

我不明白爲什麼漸變會影響性能,但漸變在許多WP7屏幕上不能很好地呈現,因爲它們針對地鐵進行了優化,不會促進漸變。我已經看到我們用於原型的HTC Trophy上的彩色條紋

0

使用漸變 - - 線性或放射狀 - 不應該有任何顯着的影響

更多這樣的提示可以在這裏我的博客上找到。但是,這並不意味着它不會。

WP7 Silverlight基於普通的Silverlight,而Silverlight基於WPF。在WPF中,線性漸變廣泛使用時會產生顯着影響,而徑向漸變無論出於何種原因都會產生相當大的影響。所以看它的歷史和譜系,經常使用可能會產生實質性影響。也就是說,如果考慮GPU實際需要做的工作來繪製這些圖像,線性和徑向漸變接近相同的工作量,並且可以優化以使用非常少的着色器指令。如果底層場景圖允許頂點修改,則線性降至4(如果我可以修改頂點,則徑向降至5),甚至在大多數情況下甚至可以爲3。這兩種着色器都非常簡單。這意味着不應該是會產生任何實際影響。也許這是微軟在某些時候可以優化的東西。

相關問題