According to the documentation:
public void recycle()
Free your own object associated with this bitmap and clear the links to the pixel data. This will not release pixel data synchronously; it just allows garbage collection if there are no other links. The bitmap is marked as βdeadβ, which means it throws an exception if getPixels () or setPixels () is called, and does not draw anything. This operation cannot be undone, so it should only be called if you are sure for a bitmap. This is an extended call, and it usually does not need to be called, since the normal GC process will free this memory when there are no more references to this bitmap.
So basically
myBitmap = null;
Removes this specific link to the bitmap that it points to. If this is the only link, then the bitmap will be cleared by the garbage collector.
but
myBitmap.recycle(); myBitmap = null;
Removes a hidden link to the pixel data for this bitmap. Then it removes your specific bitmap link. Thus, both will collect garbage. Unless you have a huge bitmap or for some reason run out of memory, you probably don't need to worry about calling myBitmap.recycle ().
source share