美文网首页
Android-Bitmap的getByteCount()和ge

Android-Bitmap的getByteCount()和ge

作者: zzq_nene | 来源:发表于2020-11-09 22:19 被阅读0次

一、不复用的情况

如果不使用内存复用,这两个方法是一样的效果。

二、复用的情况

在通过复用 Bitmap 来解码图片时,那么 getByteCount() 表示新解码图片占用内存的大 小,getAllocationByteCount() 表示被复用 Bitmap真实占用的内存大小。

可以认为:

getByteCount()只是图片的大小
getAllocationByteCount()是Bitmap的大小
因为Bitmap可以复用,所以Bitmap可以放入不同的图片,当Bitmap放入更大的图片的时候,就会占用更大的内存,但是这个时候如果对Bitmap对象进行复用,放入一张小图片,并不会改变Bitmap的大小。

举例说明:

比如,最初Bitmap放入一张大小为4M的图片,这个时候Bitmap占用了4M的内存,然后当这张图片使用完成之后,对Bitmap进行复用,放入一张1M的图片,这个时候其实只是复用了Bitmap之前内存大小的四分之一,如果使用getByteCount(),得到的其实就是1M,但是这个时候Bitmap对象实际占用内存其实还是4M,虽然对Bitmap进行了复用,但是并不会因为放入的图片变小了而改变了原本Bitmap对象占用内存的大小,所以getAllocationByteCount()返回的是4M

相关文章

网友评论

      本文标题:Android-Bitmap的getByteCount()和ge

      本文链接:https://www.haomeiwen.com/subject/vlmarktx.html