Android 我可以与Glide同步加载图像吗?
我知道从设备存储器同步加载位图不太实际,但我真的必须这样做。我还没有想出任何办法 可以是,并且在文档中 例如,如果需要同步检索位图,可以执行以下操作: 滑翔V3:Android 我可以与Glide同步加载图像吗?,android,android-glide,Android,Android Glide,我知道从设备存储器同步加载位图不太实际,但我真的必须这样做。我还没有想出任何办法 可以是,并且在文档中 例如,如果需要同步检索位图,可以执行以下操作: 滑翔V3: Bitmap myBitmap = Glide.with(applicationContext) .load(yourUrl) .asBitmap() .into(500, 500) .get() 滑动v4: FutureTarget<Bitmap> futureBitmap = Glide.with(applicati
Bitmap myBitmap = Glide.with(applicationContext)
.load(yourUrl)
.asBitmap()
.into(500, 500)
.get()
滑动v4:
FutureTarget<Bitmap> futureBitmap = Glide.with(applicationContext)
.asBitmap()
.load(yourURL))
.submit();
Bitmap myBitmap = futureBitmap.get();
FutureTarget futureBitmap=Glide.with(applicationContext)
.asBitmap()
.load(您的URL))
.submit();
位图myBitmap=futureBitmap.get();
注意:此代码需要在后台运行,否则应用程序将崩溃。在加载图像后使用接口加载数据是更好的选择 创建一个名为OnglideLoaded.java的新文件,如下所示:
import android.graphics.drawable.Drawable;
public interface OnGlideLoaded {
void onGlideLoaded(Drawable drawable);
}
现在为它创建setter方法,如下所示,其中glide是:
public void setOnGlideLoaded(OnGlideLoaded onGlideLoaded) {
this.onGlideLoaded = onGlideLoaded;
}
不要称之为内滑翔目标:
Glide.with(context)
.asBitmap()
.load(uri)
.into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
icon = resource;
if (onGlideLoaded!=null){
//This will send the image to every registered interface
onGlideLoaded.onGlideLoaded(icon);
}
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
这里,reference将是您创建setter方法的对象
我想他们看不到有必要这样做的用例,但我真的必须这样做。您介意详细说明一下这一点吗?我使用一个库,它的一个方法负责管理通知。我必须实现一个函数,它会为库返回一个通知。我使用RemoteView,它包含一个ImageView,但由于我无法在创建后修改通知,只有在重新创建它时,我才能在加载位图后“延迟”创建通知。请更具体地说明您尝试执行的操作。“从设备存储”是模糊的。完成后,你需要它在内存中采用什么格式?我将唱片集艺术的uri(想想音频文件)传递给Glide。如果你在主线程上这样做,它将抛出一个错误,说你必须在另一个线程上调用它。阻塞线程是肯定的,但要确保它不是主线程。这是v3,而不是v4。
reference.setOnGlideLoaded(new OnGlideLoaded() {
@Override
public void onGlideLoaded(Drawable drawable) {
imageView.setImageBitmap(drawable);
}
});