public final class GlideBuilder extends Object
Constructor and Description |
---|
GlideBuilder() |
Modifier and Type | Method and Description |
---|---|
Glide |
build(Context context) |
GlideBuilder |
setAnimationExecutor(GlideExecutor service)
Sets the
GlideExecutor to use when loading frames of animated images and particularly
of GifDrawable s. |
GlideBuilder |
setArrayPool(ArrayPool arrayPool)
Sets the
ArrayPool implementation to allow variable sized arrays to be stored
and retrieved as needed. |
GlideBuilder |
setBitmapPool(BitmapPool bitmapPool)
Sets the
BitmapPool implementation to use
to store and retrieve reused Bitmap s. |
GlideBuilder |
setConnectivityMonitorFactory(ConnectivityMonitorFactory factory)
Sets the
ConnectivityMonitorFactory
to use to notify RequestManager of connectivity events. |
GlideBuilder |
setDecodeFormat(DecodeFormat decodeFormat)
Deprecated.
Use
setDefaultRequestOptions(RequestOptions) instead. |
GlideBuilder |
setDefaultRequestOptions(RequestOptions requestOptions)
Sets the default
RequestOptions to use for all loads across the app. |
<T> GlideBuilder |
setDefaultTransitionOptions(Class<T> clazz,
TransitionOptions<?,T> options)
Sets the default
TransitionOptions to use when starting a request that will load a
resource with the given Class . |
GlideBuilder |
setDiskCache(DiskCache.Factory diskCacheFactory)
Sets the
DiskCache.Factory implementation to use
to construct the DiskCache to use to store Resource data on disk. |
GlideBuilder |
setDiskCache(DiskCache diskCache)
Deprecated.
Creating a disk cache directory on the main thread causes strict mode violations,
use
setDiskCache(com.bumptech.glide.load.engine.cache.DiskCache.Factory) instead.
Scheduled to be removed in Glide 4.0. |
GlideBuilder |
setDiskCacheExecutor(GlideExecutor service)
Sets the
GlideExecutor to use when retrieving
Resource s that are currently in Glide's disk caches. |
GlideBuilder |
setIsActiveResourceRetentionAllowed(boolean isActiveResourceRetentionAllowed)
If set to
true , allows Glide to re-capture resources that are loaded into
Target s which are subsequently de-referenced and
garbage collected without being cleared. |
GlideBuilder |
setLogLevel(int logLevel)
Sets a log level constant from those in
Log to indicate the desired log verbosity. |
GlideBuilder |
setMemoryCache(MemoryCache memoryCache)
Sets the
MemoryCache implementation to store
Resource s that are not currently in use. |
GlideBuilder |
setMemorySizeCalculator(MemorySizeCalculator.Builder builder)
Sets the
MemorySizeCalculator to use to calculate maximum sizes for default
MemoryCaches and/or default BitmapPools . |
GlideBuilder |
setMemorySizeCalculator(MemorySizeCalculator calculator)
Sets the
MemorySizeCalculator to use to calculate maximum sizes for default
MemoryCaches and/or default BitmapPools . |
GlideBuilder |
setResizeExecutor(GlideExecutor service)
Deprecated.
|
GlideBuilder |
setSourceExecutor(GlideExecutor service)
Sets the
GlideExecutor to use when retrieving
Resource s that are not already in the cache. |
@NonNull public GlideBuilder setBitmapPool(@Nullable BitmapPool bitmapPool)
BitmapPool
implementation to use
to store and retrieve reused Bitmap
s.bitmapPool
- The pool to use.@NonNull public GlideBuilder setArrayPool(@Nullable ArrayPool arrayPool)
ArrayPool
implementation to allow variable sized arrays to be stored
and retrieved as needed.arrayPool
- The pool to use.@NonNull public GlideBuilder setMemoryCache(@Nullable MemoryCache memoryCache)
MemoryCache
implementation to store
Resource
s that are not currently in use.memoryCache
- The cache to use.@Deprecated public GlideBuilder setDiskCache(DiskCache diskCache)
setDiskCache(com.bumptech.glide.load.engine.cache.DiskCache.Factory)
instead.
Scheduled to be removed in Glide 4.0.diskCache
- The disk cache to use.@NonNull public GlideBuilder setDiskCache(@Nullable DiskCache.Factory diskCacheFactory)
DiskCache.Factory
implementation to use
to construct the DiskCache
to use to store Resource
data on disk.diskCacheFactory
- The disk cache factory to use.@Deprecated public GlideBuilder setResizeExecutor(@Nullable GlideExecutor service)
setSourceExecutor(GlideExecutor)
GlideExecutor
to use when retrieving
Resource
s that are not already in the cache.
The thread count defaults to the number of cores available on the device, with a maximum of 4.
Use the GlideExecutor.newSourceExecutor()
methods if you'd like to specify options
for the source executor.
service
- The ExecutorService to use.setDiskCacheExecutor(GlideExecutor)
,
GlideExecutor
@NonNull public GlideBuilder setSourceExecutor(@Nullable GlideExecutor service)
GlideExecutor
to use when retrieving
Resource
s that are not already in the cache.
The thread count defaults to the number of cores available on the device, with a maximum of 4.
Use the GlideExecutor.newSourceExecutor()
methods if you'd like to specify options
for the source executor.
service
- The ExecutorService to use.setDiskCacheExecutor(GlideExecutor)
,
GlideExecutor
@NonNull public GlideBuilder setDiskCacheExecutor(@Nullable GlideExecutor service)
GlideExecutor
to use when retrieving
Resource
s that are currently in Glide's disk caches.
Defaults to a single thread which is usually the best combination of memory usage, jank, and performance, even on high end devices.
Use the GlideExecutor.newDiskCacheExecutor()
if you'd like to specify options
for the disk cache executor.
service
- The GlideExecutor
to use.setSourceExecutor(GlideExecutor)
,
GlideExecutor
@NonNull public GlideBuilder setAnimationExecutor(@Nullable GlideExecutor service)
GlideExecutor
to use when loading frames of animated images and particularly
of GifDrawable
s.
Defaults to one or two threads, depending on the number of cores available.
Use the GlideExecutor.newAnimationExecutor()
methods if you'd like to specify
options for the animation executor.
service
- The GlideExecutor
to use.@NonNull public GlideBuilder setDefaultRequestOptions(@Nullable RequestOptions requestOptions)
RequestOptions
to use for all loads across the app.
Applying additional options with RequestBuilder.apply(RequestOptions)
will override defaults
set here.
requestOptions
- The options to use by default.@NonNull public <T> GlideBuilder setDefaultTransitionOptions(@NonNull Class<T> clazz, @Nullable TransitionOptions<?,T> options)
TransitionOptions
to use when starting a request that will load a
resource with the given Class
.
It's preferable but not required for the requested resource class to match the resource
class applied here as long as the resource class applied here is assignable from the requested
resource class. For example you can set a default transition for
Drawable
and that default transition will be used if you
subsequently start requests for specific Drawable
types like
GifDrawable
or
BitmapDrawable
. Specific types are always preferred so if you
register a default transition for both Drawable
and
BitmapDrawable
and then start a request for
BitmapDrawable
s, the transition you registered for
BitmapDrawable
s will be used.
@Deprecated public GlideBuilder setDecodeFormat(DecodeFormat decodeFormat)
setDefaultRequestOptions(RequestOptions)
instead.DecodeFormat
that will be the default format for all
the default decoders that can change the Bitmap.Config
of the Bitmap
s they decode.
Decode format is always a suggestion, not a requirement. See DecodeFormat
for more details.
decodeFormat
- The format to use.@NonNull public GlideBuilder setMemorySizeCalculator(@NonNull MemorySizeCalculator.Builder builder)
MemorySizeCalculator
to use to calculate maximum sizes for default
MemoryCaches
and/or default BitmapPools
.builder
- The builder to use (will not be modified).setMemorySizeCalculator(MemorySizeCalculator)
@NonNull public GlideBuilder setMemorySizeCalculator(@Nullable MemorySizeCalculator calculator)
MemorySizeCalculator
to use to calculate maximum sizes for default
MemoryCaches
and/or default BitmapPools
.
The given MemorySizeCalculator
will not affect custom pools or caches provided
via setBitmapPool(BitmapPool)
or setMemoryCache(MemoryCache)
.
calculator
- The calculator to use.@NonNull public GlideBuilder setConnectivityMonitorFactory(@Nullable ConnectivityMonitorFactory factory)
ConnectivityMonitorFactory
to use to notify RequestManager
of connectivity events.
If not set DefaultConnectivityMonitorFactory
would be used.factory
- The factory to use@NonNull public GlideBuilder setLogLevel(int logLevel)
Log
to indicate the desired log verbosity.
The level must be one of Log.VERBOSE
, Log.DEBUG
, Log.INFO
,
Log.WARN
, or Log.ERROR
.
Log.VERBOSE
means one or more lines will be logged per request, including
timing logs and failures. Log.DEBUG
means at most one line will be logged
per successful request, including timing logs, although many lines may be logged for
failures including multiple complete stack traces. Log.INFO
means
failed loads will be logged including multiple complete stack traces, but successful loads
will not be logged at all. Log.WARN
means only summaries of failed loads will be
logged. Log.ERROR
means only exceptional cases will be logged.
All logs will be logged using the 'Glide' tag.
Many other debugging logs are available in individual classes. The log level supplied here
only controls a small set of informative and well formatted logs. Users wishing to debug
certain aspects of the library can look for individual TAG
variables at the tops
of classes and use adb shell setprop log.tag.TAG
to enable or disable any relevant
tags.
logLevel
- The log level to use from Log
.@NonNull public GlideBuilder setIsActiveResourceRetentionAllowed(boolean isActiveResourceRetentionAllowed)
true
, allows Glide to re-capture resources that are loaded into
Target
s which are subsequently de-referenced and
garbage collected without being cleared.
Defaults to false
.
Glide's resource re-use system is permissive, which means that's acceptable for callers to
load resources into Target
s and then never clear the
Target
. To do so, Glide uses
WeakReference
s to track resources that belong to
Target
s that haven't yet been cleared. Setting
this method to true
allows Glide to also maintain a hard reference to the underlying
resource so that if the Target
is garbage collected,
Glide can return the underlying resource to it's memory cache so that subsequent requests will
not unexpectedly re-load the resource from disk or source. As a side affect, it will take
the system slightly longer to garbage collect the underlying resource because the weak
reference has to be cleared and processed before the hard reference is removed. As a result,
setting this method to true
may transiently increase the memory usage of an
application.
Leaving this method at the default false
value will allow the platform to garbage
collect resources more quickly, but will lead to unexpected memory cache misses if callers load
resources into Target
s but never clear them.
If you set this method to true
you must not call
Bitmap.recycle()
or mutate any Bitmaps returned by Glide. If this method is set to
false
, recycling or mutating Bitmaps is inefficient but safe as long as you do not
clear the corresponding Target
used to load the
Bitmap
. However, if you set this method to true
and recycle or mutate any
returned Bitmap
s or other mutable resources, Glide may recover those resources and
attempt to use them later on, resulting in crashes, graphical corruption or undefined behavior.
Regardless of what value this method is set to, it's always good practice to clear
Target
s when you're done with the corresponding
resource. Clearing Target
s allows Glide to maximize
resource re-use, minimize memory overhead and minimize unexpected behavior resulting from
edge cases. If you use RequestManager.clear(Target)
, calling Bitmap.recycle()
or mutating Bitmap
s is not only unsafe, it's also totally unnecessary and should be
avoided. In all cases, prefer RequestManager.clear(Target)
to Bitmap.recycle()
.