下面列出了com.bumptech.glide.load.Key#com.bumptech.glide.Priority 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
DecodeJob(EngineKey resultKey, int width, int height, DataFetcher<A> fetcher,
DataLoadProvider<A, T> loadProvider, Transformation<T> transformation, ResourceTranscoder<T, Z> transcoder,
DiskCacheProvider diskCacheProvider, DiskCacheStrategy diskCacheStrategy, Priority priority, FileOpener
fileOpener) {
this.resultKey = resultKey;
this.width = width;
this.height = height;
this.fetcher = fetcher;
this.loadProvider = loadProvider;
this.transformation = transformation;
this.transcoder = transcoder;
this.diskCacheProvider = diskCacheProvider;
this.diskCacheStrategy = diskCacheStrategy;
this.priority = priority;
this.fileOpener = fileOpener;
}
public void showArt(String artUrl) {
if (!TextUtils.equals(lastArtUrl, artUrl)) {
lastArtUrl = artUrl;
Glide.with(getContext())
.load(artUrl)
.asBitmap()
.priority(Priority.IMMEDIATE)
.into(new ImageViewTarget<Bitmap>(smallImage) {
@Override
protected void setResource(Bitmap resource) {
smallImage.setImageBitmap(resource);
smallImage.post(() -> {
Blurry.with(getContext())
.async(bitmap -> {
background.setImageDrawable(bitmap);
getActivity().supportStartPostponedEnterTransition();
})
.from(resource)
.into(background);
});
}
});
}
}
@Override
public InputStream loadData(Priority priority) throws Exception {
Request.Builder requestBuilder = new Request.Builder().url(url.toStringUrl());
for (Map.Entry<String, String> headerEntry : url.getHeaders().entrySet()) {
String key = headerEntry.getKey();
requestBuilder.addHeader(key, headerEntry.getValue());
}
Request request = requestBuilder.build();
Response response;
call = client.newCall(request);
response = call.execute();
responseBody = response.body();
if (!response.isSuccessful()) {
throw new IOException("Request failed with code: " + response.code());
}
long contentLength = responseBody.contentLength();
stream = ContentLengthInputStream.obtain(responseBody.byteStream(), contentLength);
return stream;
}
/**
* Glide实现高斯模糊
*
* @param context
* @param url
* @param imageView
*/
public static void loadImgBlur(Context context, String url, int defaultLoadingImg,ImageView imageView) {
try {
RequestOptions options = new RequestOptions()
.priority(Priority.HIGH)
.placeholder(defaultLoadingImg)
.error(defaultLoadingImg)
.bitmapTransform(new BlurTransformation(40, 16));
Glide.with(context)
.load(url)
.apply(options)
.into(imageView);
} catch (Exception exception) {
return;
}
}
@Override
public View instantiateItem(ViewGroup container, int position) {
View view = inflater.inflate(R.layout.adapter_album, container, false);
ImageView image = ButterKnife.findById(view, R.id.image);
Glide.with(container.getContext())
.load(albums.get(position).getArtworkUrl())
.asBitmap()
.priority(Priority.IMMEDIATE)
.diskCacheStrategy(DiskCacheStrategy.RESULT)
.into(new ImageViewTarget<Bitmap>(image) {
@Override
protected void setResource(Bitmap resource) {
image.setImageBitmap(resource);
if (position == current && !isLoaded) {
isLoaded = true;
if (callback != null) {
callback.onTransitionImageLoaded(image, resource);
}
}
}
});
container.addView(view);
return view;
}
@Override
public void loadData(@NonNull Priority priority, @NonNull DataCallback<? super InputStream> callback) {
Request.Builder requestBuilder = new Request.Builder().url(url.toStringUrl());
for (Map.Entry<String, String> headerEntry : url.getHeaders().entrySet()) {
String key = headerEntry.getKey();
requestBuilder.addHeader(key, headerEntry.getValue());
}
Request request = requestBuilder.build();
Response response = null;
call = client.newCall(request);
try {
response = call.execute();
responseBody = response.body();
} catch (IOException e) {
e.printStackTrace();
callback.onLoadFailed(new IOException("Request failed with code: "));
return;
}
long contentLength = responseBody.contentLength();
stream = ContentLengthInputStream.obtain(responseBody.byteStream(), contentLength);
callback.onDataReady(stream);
}
@Override
public void loadData(@NonNull Priority priority, @NonNull DataCallback<? super InputStream> callback) {
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(model.filePath);
byte[] picture = retriever.getEmbeddedPicture();
if (picture != null) {
callback.onDataReady(new ByteArrayInputStream(picture));
} else {
try {
callback.onDataReady(fallback(model.filePath));
} catch (FileNotFoundException e) {
callback.onLoadFailed(e);
}
}
} finally {
retriever.release();
}
}
@Override
public void showPlaylistArt(String artUrl) {
if (!loaded) {
loaded = true;
Glide.with(getContext())
.load(artUrl)
.asBitmap()
.priority(Priority.IMMEDIATE)
.into(new ImageViewTarget<Bitmap>(playlistArt) {
@Override
protected void setResource(Bitmap resource) {
final int imageHeight = playlistArt.getHeight();
playlistArt.setImageBitmap(resource);
parent.setStaticOffset(imageHeight);
parent.setOffset(imageHeight);
toggle.setStaticOffset(imageHeight - toggle.getHeight() / 2);
toggle.setOffset(imageHeight - toggle.getHeight() / 2);
toggle.setMinOffset(ViewCompat.getMinimumHeight(playlistArt) - toggle.getHeight() / 2);
tracks.addOnScrollListener(listener);
tracks.setOnFlingListener(flingListener);
new Palette.Builder(resource).generate(PlaylistFragment.this::applyPalette);
getActivity().supportStartPostponedEnterTransition();
}
});
}
}
@SuppressWarnings("unchecked")
private void setupGlideOptions() {
options = new RequestOptions();
if (isShapeCircle) {
if (Defaults.CIRCLE_RADIUS > 0) {
options.transforms(new CenterCrop(), new RoundedCorners(Defaults.CIRCLE_RADIUS));
} else {
options.circleCrop();
}
}
options.override(Defaults.IMAGE_HEIGHT, Defaults.IMAGE_HEIGHT);
options.placeholder(placeholder_image);
options.priority(Priority.HIGH);
}
@SuppressWarnings("unchecked")
private void setupGlideOptions() {
options = new RequestOptions();
int size;
if (isShapeCircle) {
if (Defaults.CIRCLE_RADIUS > 0) {
size = (int) (0.65 * Defaults.IMAGE_HEIGHT);
options.transforms(new CenterCrop(), new RoundedCorners(Defaults.CIRCLE_RADIUS));
} else {
size = Defaults.IMAGE_HEIGHT;
options.circleCrop();
}
} else {
size = (int) (0.65 * Defaults.IMAGE_HEIGHT);
}
options.override(size, size);
options.error(error_image);
options.priority(Priority.HIGH);
}
@SuppressWarnings("unchecked")
private void setupGlideOptions() {
options = new RequestOptions();
if (isShapeCircle) {
if (Defaults.CIRCLE_RADIUS > 0) {
options.transforms(new CenterCrop(), new RoundedCorners(Defaults.CIRCLE_RADIUS));
} else {
options.circleCrop();
}
}
options.override(Defaults.IMAGE_HEIGHT, Defaults.IMAGE_HEIGHT);
options.placeholder(placeholder_image);
options.priority(Priority.HIGH);
}
@Override
public InputStream loadData(Priority priority) throws Exception {
Request.Builder requestBuilder = new Request.Builder()
.url(url.toStringUrl());
for (Map.Entry<String, String> headerEntry : url.getHeaders().entrySet()) {
String key = headerEntry.getKey();
requestBuilder.addHeader(key, headerEntry.getValue());
}
Request request = requestBuilder.build();
Response response = client.newCall(request).execute();
responseBody = response.body();
if (!response.isSuccessful()) {
throw new IOException("Request failed with code: " + response.code());
}
long contentLength = responseBody.contentLength();
stream = ContentLengthInputStream.obtain(responseBody.byteStream(), contentLength);
return stream;
}
@Override
public void loadData(@NonNull Priority priority, @NonNull DataCallback<? super InputStream> callback) {
try {
byte[] packIdBytes = Hex.stringToBytes(stickerUri.getPackId());
byte[] packKeyBytes = Hex.stringToBytes(stickerUri.getPackKey());
InputStream stream = receiver.retrieveSticker(packIdBytes, packKeyBytes, stickerUri.getStickerId());
callback.onDataReady(stream);
} catch (IOException | InvalidMessageException e) {
callback.onLoadFailed(e);
}
}
@Override
public void loadData(@NonNull Priority priority, @NonNull DataCallback<? super InputStream> callback) {
try {
Request.Builder requestBuilder = new Request.Builder()
.url(url.toStringUrl());
for (Map.Entry<String, String> headerEntry : url.getHeaders().entrySet()) {
String key = headerEntry.getKey();
requestBuilder.addHeader(key, headerEntry.getValue());
}
Request request = requestBuilder.build();
Response response = client.newCall(request).execute();
responseBody = response.body();
if (!response.isSuccessful()) {
throw new IOException("Request failed with code: " + response.code());
}
long contentLength = responseBody.contentLength();
stream = ContentLengthInputStream.obtain(responseBody.byteStream(), contentLength);
callback.onDataReady(stream);
} catch (IOException e) {
callback.onLoadFailed(e);
}
}
@Override
public void loadData(@NonNull Priority priority, @NonNull DataCallback<? super InputStream> callback) {
ChunkedDataFetcher fetcher = new ChunkedDataFetcher(client);
requestController = fetcher.fetch(url.getUrl(), url.getSize(), new ChunkedDataFetcher.Callback() {
@Override
public void onSuccess(InputStream stream) {
callback.onDataReady(stream);
}
@Override
public void onFailure(Exception e) {
callback.onLoadFailed(e);
}
});
}
@Override
public void loadData(@NonNull Priority priority, @NonNull DataCallback<? super InputStream> callback) {
try {
if (!digest.isPresent()) throw new InvalidMessageException("No attachment digest!");
is = AttachmentCipherInputStream.createForAttachment(attachment, plaintextLength, key, digest.get());
callback.onDataReady(is);
} catch (IOException | InvalidMessageException e) {
callback.onLoadFailed(e);
}
}
private static RequestOptions getRequestOptions() {
RequestOptions requestOptions = new RequestOptions()
// 填充方式
.centerCrop()
//优先级
.priority(Priority.HIGH)
//缓存策略
.diskCacheStrategy(DiskCacheStrategy.ALL);
return requestOptions;
}
@Override
public void onBindData() {
Track track = at(current());
artist.setText(track.getArtist());
trackTitle.setText(track.getTitle());
duration.setText(track.getFormatedDuration());
Glide.with(itemView.getContext())
.load(track.getArtworkUrl())
.priority(Priority.IMMEDIATE)
.diskCacheStrategy(DiskCacheStrategy.RESULT)
.into(trackArt);
}
@Override
public void showUser(User user) {
this.userModel = user;
Glide.with(getContext())
.load(user.getAvatarUrl())
.asBitmap()
.priority(Priority.IMMEDIATE)
.into(userAvatar);
this.user.setText(user.getNickName());
}
@Override
public InputStream loadData(Priority priority) throws Exception {
ThumbnailStreamOpener fetcher = factory.build(mediaStoreUri, width, height);
if (fetcher != null) {
inputStream = openThumbInputStream(fetcher);
}
if (inputStream == null) {
inputStream = defaultFetcher.loadData(priority);
}
return inputStream;
}
public static void loadAllAsBitmap(Context context, String imgUrl, ImageView imageView) {
GlideApp.with(context)
.asBitmap()
.load(imgUrl)
.priority(Priority.LOW)
.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
.into(imageView);
}
public static void loadAllAsBitmap(Context context, String imgUrl, int imgRes, ImageView imageView) {
GlideApp.with(context)
.asBitmap()
.load(imgUrl)
.centerCrop()
.placeholder(imgRes)
.error(imgRes)
.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
.priority(Priority.LOW)
.into(imageView);
}
@Override
public void loadData(Priority priority, DataCallback<? super InputStream> callback) {
try {
Request.Builder requestBuilder = new Request.Builder()
.url(url.toStringUrl());
for (Map.Entry<String, String> headerEntry : url.getHeaders().entrySet()) {
String key = headerEntry.getKey();
requestBuilder.addHeader(key, headerEntry.getValue());
}
Request request = requestBuilder.build();
Response response = client.newCall(request).execute();
responseBody = response.body();
if (!response.isSuccessful()) {
throw new IOException("Request failed with code: " + response.code());
}
long contentLength = responseBody.contentLength();
stream = ContentLengthInputStream.obtain(responseBody.byteStream(), contentLength);
callback.onDataReady(stream);
} catch (IOException e) {
callback.onLoadFailed(e);
}
}
@Override
public void loadData(Priority priority, DataCallback<? super InputStream> callback) {
try {
inputStream = contactPhoto.openInputStream(context);
callback.onDataReady(inputStream);
} catch (IOException e) {
callback.onLoadFailed(e);
}
}
@GlideOption
@NonNull
public static RequestOptions artistOptions(RequestOptions requestOptions, Artist artist) {
return requestOptions
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.error(R.drawable.default_artist_image)
.placeholder(R.drawable.default_artist_image)
.priority(Priority.LOW)
.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
.signature(createSignature(artist));
}
@Override
public InputStream loadData(Priority priority) throws Exception {
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(model.filePath);
byte[] picture = retriever.getEmbeddedPicture();
if (picture != null) {
return new ByteArrayInputStream(picture);
} else {
return fallback(model.filePath);
}
} finally {
retriever.release();
}
}
public GlideLoader applyDefault(int placeholderId, int errorId) {
mRequestOptions = new RequestOptions()
.centerCrop()
.priority(Priority.HIGH)
.diskCacheStrategy(DiskCacheStrategy.ALL);
if(placeholderId != 0) {
mRequestOptions.placeholder(placeholderId);
}
if(errorId != 0) {
mRequestOptions.error(errorId);
}
return this;
}
@Override
public void loadData(@NonNull Priority priority,
@NonNull final DataFetcher.DataCallback<? super InputStream> callback) {
Request.Builder requestBuilder = new Request.Builder().url(mGlideUrl.toStringUrl());
for (Map.Entry<String, String> headerEntry : mGlideUrl.getHeaders().entrySet()) {
String key = headerEntry.getKey();
requestBuilder.addHeader(key, headerEntry.getValue());
}
Request request = requestBuilder.build();
mDataCallback = callback;
mCall = mCallFactory.newCall(request);
mCall.enqueue(this);
}
public static void loadDefault(Context context, ImageView imageView) {
GlideApp.with(context)
.load(R.drawable.icon_default)
.centerCrop()
.placeholder(R.drawable.icon_default)
.error(R.drawable.icon_default)
.priority(Priority.LOW)
.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
.into(imageView);
}
public DrawableRequestBuilder<GlideDrawable> build() {
//noinspection unchecked
return createBaseRequest(requestManager, artist, noCustomImage)
.diskCacheStrategy(DEFAULT_DISK_CACHE_STRATEGY)
.error(DEFAULT_ERROR_IMAGE)
.animate(DEFAULT_ANIMATION)
.priority(Priority.LOW)
.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
.signature(createSignature(artist));
}