下面列出了怎么用com.bumptech.glide.load.resource.transcode.BitmapToGlideDrawableTranscoder的API类实例代码及写法,或者点击链接到github查看源代码。
public GlideFilmstripManager(Context context)
{
Glide glide = Glide.get(context);
BitmapEncoder bitmapEncoder = new BitmapEncoder(Bitmap.CompressFormat.JPEG,
JPEG_COMPRESS_QUALITY);
GifBitmapWrapperResourceEncoder drawableEncoder = new GifBitmapWrapperResourceEncoder(
bitmapEncoder,
new GifResourceEncoder(glide.getBitmapPool()));
RequestManager request = Glide.with(context);
mTinyImageBuilder = request
.fromMediaStore()
.asBitmap() // This prevents gifs from animating at tiny sizes.
.transcode(new BitmapToGlideDrawableTranscoder(context), GlideDrawable.class)
.fitCenter()
.placeholder(DEFAULT_PLACEHOLDER_RESOURCE)
.dontAnimate();
mLargeImageBuilder = request
.fromMediaStore()
.encoder(drawableEncoder)
.fitCenter()
.placeholder(DEFAULT_PLACEHOLDER_RESOURCE)
.dontAnimate();
}
@NonNull
private ImageView getGifLoadedUsingGlide() {
ImageView animatedImageView = new ImageView(getActivity());
animatedImageView.setMaxHeight(900);
Glide.with(getActivity())
.load(R.drawable.animated_image)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.thumbnail(Glide.with(getActivity())
.load(R.drawable.animated_image)
.asBitmap()
.transcode(new BitmapToGlideDrawableTranscoder(getActivity()), GlideDrawable.class)
.diskCacheStrategy(DiskCacheStrategy.ALL)
)
.into(animatedImageView);
return animatedImageView;
}
public GeneratingAdapter(final Context context) {
generator = Glide // this part should be cleaner in Glide 4.0, but that's not released yet
.with(context)
.using(new GeneratePassthroughModelLoader(), GenerateParams.class) // custom class
.from(GenerateParams.class)
.as(Bitmap.class)
.transcode(new BitmapToGlideDrawableTranscoder(context), GlideDrawable.class) // builtin
.decoder(new GenerateBitmapResourceDecoder(context)) // custom class
.encoder(new BitmapEncoder(Bitmap.CompressFormat.PNG, 0/*ignored for lossless*/)) // builtin
.cacheDecoder(new FileToStreamDecoder<Bitmap>(new StreamBitmapDecoder(context))) // builtin
//.placeholder(new ColorDrawable(Color.YELLOW)) // you can pre-set placeholder and error
//.error(new ColorDrawable(Color.RED)) // so it's easier when binding
//.diskCacheStrategy(DiskCacheStrategy.NONE) // only for debugging to always regenerate
//.skipMemoryCache(true) // only for debugging to always regenerate
;
}
private GenericRequestBuilder<String, ?, ?, GlideDrawable> createGlideRequest(RequestManager glide,
boolean animated) {
GenericRequestBuilder<String, ?, ?, GlideDrawable> load;
if (animated) {
load = glide
.fromString()
//".asDrawable()" default loading handles animated GIFs and still images as well
.diskCacheStrategy(DiskCacheStrategy.SOURCE) // animated GIFs need source cache
// show full image when animating
.fitCenter()
;
} else {
load = glide
.fromString()
// force still images
.asBitmap()
// make compatible with target
.transcode(new BitmapToGlideDrawableTranscoder(context), GlideDrawable.class)
// cache resized images (RESULT), and re-use SOURCE cached GIFs if any
.diskCacheStrategy(DiskCacheStrategy.ALL)
// show part of the image when still
.centerCrop()
;
}
return load
// common settings
.listener(new LoggingListener<String, GlideDrawable>())
;
}