Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用大量内存的矢量绘图_Android_Drawable_Android Vectordrawable - Fatal编程技术网

Android 使用大量内存的矢量绘图

Android 使用大量内存的矢量绘图,android,drawable,android-vectordrawable,Android,Drawable,Android Vectordrawable,所以我有11种不同的绘图工具,我把它们做成了向量,我把它们作为比棒棒糖版本更高的所有设备的图像,它可以作为图像使用,但是向量要么使它非常滞后,要么由于没有足够的内存而使应用程序崩溃 我认为向量比图像更有效 下面是我的向量可绘制的示例: <?xml version="1.0" encoding="utf-8"?> <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width

所以我有11种不同的绘图工具,我把它们做成了向量,我把它们作为比棒棒糖版本更高的所有设备的图像,它可以作为图像使用,但是向量要么使它非常滞后,要么由于没有足够的内存而使应用程序崩溃

我认为向量比图像更有效

下面是我的向量可绘制的示例:

<?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中显示这些内容,gridView会随机将它们设置为创建的ImageView的图像资源。

由于这些可绘制内容的大小,您可能会遇到问题,请参阅其中包括:

矢量图形的初始加载可能比相应的光栅图像花费更多的CPU周期。之后,两者的内存使用和性能相似。我们建议您将矢量图像的最大分辨率限制为200 x 200 dp;否则,绘制可能需要太长时间


它们最终会相对于屏幕宽度绘制,因此大小并不重要。我原以为由于文件大小较小,矢量会占用较少的内存,但没有意识到计算开销会如此巨大。我想我只会使用高度压缩的图像,这是一个很好的教训。视口高度和视口宽度是否也会影响内存使用,即是否也建议将它们设置为最大200 x 200 dp?