Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.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_Bitmap_Mutable - Fatal编程技术网

Android 不变位图比可变位图快吗?

Android 不变位图比可变位图快吗?,android,bitmap,mutable,Android,Bitmap,Mutable,带有以下签名的位图a类方法copy(): public Bitmap copy(Bitmap.Config config, boolean isMutable) 可变位图和不可变位图之间是否存在性能差异?在应用程序级别,不可变和可变位图资源之间始终存在差异 您总是从资源中获得一个不可变的位图。您需要根据需要将它们转换为可变位图 位图位图=位图工厂.decodeResource(..); 位图可变位图=不可变位图.copy(Bitmap.Config.ARGB_8888,true) 因此,此参考

带有以下签名的
位图
a类方法
copy()

public Bitmap copy(Bitmap.Config config, boolean isMutable)

可变位图和不可变位图之间是否存在性能差异?

在应用程序级别,不可变和可变位图资源之间始终存在差异

您总是从资源中获得一个不可变的位图。您需要根据需要将它们转换为可变位图

位图位图=位图工厂.decodeResource(..); 位图可变位图=不可变位图.copy(Bitmap.Config.ARGB_8888,true)


因此,此参考中可能存在性能问题。

没有性能差异。这不会影响应用程序的性能。如果你想执行任何操作,如旋转等,那么我认为位图应该是可变的

在评论中回答:


回答原来的问题:没有,没有表演 差别。我们可以为其实现一些优化 不过,位图是可变的。希望在将来的版本中:)


如果有显著的差异,我会感到惊讶。我也会感到惊讶,但除了代码强化之外,我无法想象选择其中一个的函数原因。这就是说,因为它使代码变硬,所以通常最好使其不可变。您获得的任何性能提升都将获得,因为您知道图像永远不会更改。不可变位图的原因是它们为您节省了资源(当您将一个不可变位图复制到另一个不可变位图时,C指针仍然指向同一位置,因此不需要真正的拷贝)。但是,其他一切都是一样的,所以对于您的问题,没有性能变化,但是如果您关心系统资源,则应该尽可能使用不变的位图。我记得Romain Guy写过一篇关于它的文章,但我找不到它。@androidcompile Bitmap.copy()将复制位图的内容,它们不指向同一个存储(您从中复制的位图可能是可变的)。您所描述的是我们对可绘制文件所做的。回答最初的问题:不,没有性能差异。不过,我们可以对可变位图进行一些优化。希望在未来的版本中:)两次反对票,没有评论?真正地作为一个用户,这让我不知道答案是否是错误的,只是让选民感到困惑,或者是第三种选择。