Interface Resource<Z>

Type Parameters:
Z - The type of resource wrapped by this class.
All Known Implementing Classes:
BitmapDrawableResource, BitmapResource, BytesResource, DrawableResource, FileResource, GifDrawableResource, LazyBitmapDrawableResource, SimpleResource

public interface Resource<Z>
A resource interface that wraps a particular type so that it can be pooled and reused.
  • Method Summary

    Modifier and Type
    Method
    Description
    get()
    Returns an instance of the wrapped resource.
    Returns the Class of the wrapped resource.
    int
    Returns the size in bytes of the wrapped resource to use to determine how much of the memory cache this resource uses.
    void
    Cleans up and recycles internal resources.
  • Method Details

    • getResourceClass

      @NonNull Class<Z> getResourceClass()
      Returns the Class of the wrapped resource.
    • get

      @NonNull Z get()
      Returns an instance of the wrapped resource.

      Note - This does not have to be the same instance of the wrapped resource class and in fact it is often appropriate to return a new instance for each call. For example, Drawables should only be used by a single View at a time so each call to this method for Resources that wrap Drawables should always return a new Drawable.

    • getSize

      int getSize()
      Returns the size in bytes of the wrapped resource to use to determine how much of the memory cache this resource uses.
    • recycle

      void recycle()
      Cleans up and recycles internal resources.

      It is only safe to call this method if there are no current resource consumers and if this method has not yet been called. Typically this occurs at one of two times:

      • During a resource load when the resource is transformed or transcoded before any consumer have ever had access to this resource
      • After all consumers have released this resource and it has been evicted from the cache
      For most users of this class, the only time this method should ever be called is during transformations or transcoders, the framework will call this method when all consumers have released this resource and it has been evicted from the cache.