2016-01-27 45 views
1

所以我有11個不同的可繪製矢量,我已經將它們用作所有設備的圖像,這些設備的版本比棒棒糖晚,它可以像圖像一樣工作,但矢量或者使它非常滯後,或者由於內存不足而導致應用程序崩潰。使用大量內存的矢量Drawables

我以爲矢量比圖像更高效。

這是我的矢量繪製的例子:

<?xml version="1.0" encoding="utf-8"?> 
<vector xmlns:android="http://schemas.android.com/apk/res/android" 
    android:width="612dp" 
    android:height="792dp" 
    android:viewportWidth="612" 
    android:viewportHeight="792"> 

<path 
    android:fillColor="#C03A2B" 
    android:pathData="M 306 90 C 474.999133448 90 612 227.000866552 612 396 C 612 564.999133448 474.999133448 702 306 702 C 137.000866552 702 0 564.999133448 0 396 C 0 227.000866552 137.000866552 90 306 90 Z" /> 
<path 
    android:fillColor="#FFFFFF" 
    android:pathData="M483.9,584.7L301.1,415.4c-10.9-10.2-15.5-23.7-9.7-29.5l5.6-5.6c5.9-5.9,19.5-1.3,29.5,9.7l169.5,182.6 
    c2.2,2.4,1.8,6.3-0.7,9l-2.5,2.5C490.2,586.5,486.1,587,483.9,584.7z" /> 
</vector> 

我在GridView隨機地將它們設置爲所創建imageviews圖像資源顯示這些。

+0

凹凸?........... – MDubzem

回答

1

看來你將有問題,是由於那些可繪的大小,請參閱this guidance其包括:

矢量圖形的初始載量可以比對應的光柵圖像花費更多的CPU週期。之後,兩者之間的內存使用和性能相似。我們建議您將矢量圖像限制爲最大200 x 200 dp;否則,繪製可能需要很長時間。

+0

它們最終會相對於屏幕寬度進行繪製,因此大小無關緊要。我認爲由於較小的文件大小向量將使用較少的內存,但沒有意識到計算開銷會如此之大。 – MDubzem

+0

我想我只會使用高度壓縮的圖像,是一個很好的教訓。 – MDubzem