com.bumptech.glide.load.engine.Resource Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of glide Show documentation
Show all versions of glide Show documentation
A fast and efficient image loading library for Android focused on smooth scrolling.
package com.bumptech.glide.load.engine;
/**
* A resource interface that wraps a particular type so that it can be pooled and reused.
*
* @param The type of resource wrapped by this class.
*/
public interface Resource {
/**
* Returns the {@link Class} of the wrapped resource.
*/
Class getResourceClass();
/**
* 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,
* {@link android.graphics.drawable.Drawable Drawable}s should only be used by a single
* {@link android.view.View View} at a time so each call to this method for Resources that wrap
* {@link android.graphics.drawable.Drawable Drawable}s should always return a new
* {@link android.graphics.drawable.Drawable Drawable}.
*/
Z get();
/**
* Returns the size in bytes of the wrapped resource to use to determine how much of the memory
* cache this resource uses.
*/
int getSize();
/**
* 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.
*/
void recycle();
}