Android Glide-无法解析方法侦听器 storageReference.child(“ProfilePicture”) .child(currUser.getUid()) .getDownloadUrl() .addOnSuccessListener(新的OnSuccessListener(){ @凌驾 成功时的公共无效(Uri){ profilePicture=storageReference.child(“profilePicture”).child(currUser.getUid()); Glide.with(getBaseContext()) .使用(新的FireBaseMageLoader()) .load(配置文件图片) .signature(新的StringSignature(String.valueOf(System.currentTimeMillis())) .进入(图片) .listener(新的RequestListener(){ @凌驾 公共布尔onException(异常e、URL模型、目标、布尔isFirstResource){ progressDialogCreate.hide(); 返回false; } @凌驾 公共布尔值onResourceReady(GlideDrawable资源、URL模型、目标、布尔值isFromMemoryCache、布尔值isFirstResource){ progressDialogCreate.hide(); 返回false; } }); profilePictures.setVisibility(View.VISIBLE); } });
我得到了这个错误Android Glide-无法解析方法侦听器 storageReference.child(“ProfilePicture”) .child(currUser.getUid()) .getDownloadUrl() .addOnSuccessListener(新的OnSuccessListener(){ @凌驾 成功时的公共无效(Uri){ profilePicture=storageReference.child(“profilePicture”).child(currUser.getUid()); Glide.with(getBaseContext()) .使用(新的FireBaseMageLoader()) .load(配置文件图片) .signature(新的StringSignature(String.valueOf(System.currentTimeMillis())) .进入(图片) .listener(新的RequestListener(){ @凌驾 公共布尔onException(异常e、URL模型、目标、布尔isFirstResource){ progressDialogCreate.hide(); 返回false; } @凌驾 公共布尔值onResourceReady(GlideDrawable资源、URL模型、目标、布尔值isFromMemoryCache、布尔值isFirstResource){ progressDialogCreate.hide(); 返回false; } }); profilePictures.setVisibility(View.VISIBLE); } });,android,android-glide,Android,Android Glide,我得到了这个错误 有人能解释为什么会发生这种情况吗?方法之间的顺序不对。 into(profilePictures)将返回类型为Target的变量,但是listener需要由DrawableTypeRequest调用。将的顺序切换到和监听器,它应该可以工作。试试这个:- 使用此依赖项可使用GlideDrawable方法的Glide和。使用(新的FirebaseImageLoader())方法的FirebaseUi storageReference.child("ProfilePicture")
有人能解释为什么会发生这种情况吗?方法之间的顺序不对。
into(profilePictures)
将返回类型为Target
的变量,但是listener
需要由DrawableTypeRequest
调用。将的顺序切换到和监听器,它应该可以工作。试试这个:-
使用此依赖项可使用GlideDrawable
方法的Glide
和。使用(新的FirebaseImageLoader())
方法的FirebaseUi
storageReference.child("ProfilePicture")
.child(currUser.getUid())
.getDownloadUrl()
.addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
profilePicture = storageReference.child("ProfilePicture").child(currUser.getUid());
Glide.with(getBaseContext())
.using(new FirebaseImageLoader())
.load(profilePicture)
.signature(new StringSignature(String.valueOf(System.currentTimeMillis())))
.into(profilePictures)
.listener(new RequestListener<URL, GlideDrawable>() {
@Override
public boolean onException(Exception e, URL model, Target<GlideDrawable> target, boolean isFirstResource) {
progressDialogCreate.hide();
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, URL model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
progressDialogCreate.hide();
return false;
}
});
profilePictures.setVisibility(View.VISIBLE);
}
});
Glide.with(MainActivity.this)
.使用(新的FireBaseMageLoader())
.load(配置文件图片)
.signature(新的StringSignature(String.valueOf(System.currentTimeMillis()))
.进入(图片)
.listener(新的RequestListener(){
@凌驾
公共布尔onException(异常e、URL模型、目标、布尔isFirstResource){
progressDialogCreate.hide();
返回false;
}
@凌驾
公共布尔值onResourceReady(GlideDrawable资源、URL模型、目标、布尔值isFromMemoryCache、布尔值isFirstResource){
progressDialogCreate.hide();
返回false;
}
});
编辑:-
尝试这样应用侦听器
Glide.with(MainActivity.this)
.using(new FirebaseImageLoader())
.load(profilePicture)
.signature(new StringSignature(String.valueOf(System.currentTimeMillis())))
.into(profilePictures)
.listener(new RequestListener<URL, GlideDrawable>() {
@Override
public boolean onException(Exception e, URL model, Target<GlideDrawable> target, boolean isFirstResource) {
progressDialogCreate.hide();
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, URL model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
progressDialogCreate.hide();
return false;
}
});
Glide.with(MainActivity.this)
.using(new FirebaseImageLoader())
.load(profilePicture)
.signature(new StringSignature(String.valueOf(System.currentTimeMillis())))
.into(new GlideDrawableImageViewTarget(profilePictures) {
@Override
public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> animation) {
super.onResourceReady(resource, animation);
//try to hide here
}
@Override
public void onLoadFailed(Exception e, Drawable errorDrawable) {
super.onLoadFailed(e, errorDrawable);
//try to hide here
}
});
Glide.with(MainActivity.this)
.使用(新的FireBaseMageLoader())
.load(配置文件图片)
.signature(新的StringSignature(String.valueOf(System.currentTimeMillis()))
.into(新的GlideDrawableImageViewTarget(profilePictures){
@凌驾
public void onResourceReady(GlideDrawable资源、GlideAnimationGlideDrawable
已弃用,请像这样使用侦听器
Glide.with(MainActivity.this)
.using(new FirebaseImageLoader())
.load(profilePicture)
.signature(new StringSignature(String.valueOf(System.currentTimeMillis())))
.into(profilePictures)
.listener(new RequestListener<URL, GlideDrawable>() {
@Override
public boolean onException(Exception e, URL model, Target<GlideDrawable> target, boolean isFirstResource) {
progressDialogCreate.hide();
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, URL model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
progressDialogCreate.hide();
return false;
}
});
Glide.with(MainActivity.this)
.using(new FirebaseImageLoader())
.load(profilePicture)
.signature(new StringSignature(String.valueOf(System.currentTimeMillis())))
.into(new GlideDrawableImageViewTarget(profilePictures) {
@Override
public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> animation) {
super.onResourceReady(resource, animation);
//try to hide here
}
@Override
public void onLoadFailed(Exception e, Drawable errorDrawable) {
super.onLoadFailed(e, errorDrawable);
//try to hide here
}
});
Glide.with(mContext)
.load(item.getFriendUserPhotoUrl())
.listener(新的RequestListener(){
@凌驾
public boolean onload失败(@Nullable glide,对象模型,目标,boolean isFirstResource){
fullname.setVisibility(View.VISIBLE);
progressBar.setVisibility(View.GONE);
imageView.setImageResource(R.drawable.profile\u default\u photo);
返回false;
}
@凌驾
公共布尔onResourceReady(可绘制资源、对象模型、目标、数据源数据源、布尔isFirstResource){
progressBar.setVisibility(View.GONE);
fullname.setVisibility(View.VISIBLE);
返回false;
}
})
.插入(支架.缩略图);
发布你的glide依赖项compile'com.github.bumptech.glide:glide:3.8.0'@Suto MinyukusTamas更新到最新版本compile com.github.bumptech.glide:glide:4.4.0
并将GlideDrawable
更改为Drawable
,因为在最新版本中不再有GlideDrawable
。@HarshadPrajapatit、 使用(new FirebaseImageLoader())时,我得到了相同的错误,并且无法解析FirebaseImageLoader的符号“StringSignature”。我使用{compile'com.firebaseui:firebaseui存储:0.6.0'}错误解除后,我还必须更改参数类型(URL
为StorageReference
),但即使图像已加载或未加载,它也不会调用任何函数show是否检查它们是否已被调用?progressDialog不会消失,即使图像已加载,并且在我尝试使用Toast后,它仍没有显示OK,我认为问题在于您的imageview已隐藏。如果它已隐藏,则加载不会停止rt,因此没有调用回调。检查此项以了解更多详细信息其未隐藏
问题是我在方法到和侦听器之间的顺序错误,并且我还必须更改参数类型(URL
到StorageReference
),但现在,即使图像已加载或未加载,它也不会调用任何functions@Suto-MinyukusTamas所以您是说您的错误无法解决方法listener和for。using()
i