SimpleDraweeView上的setImageURI:加载图像时的回调 – Android

我正在使用此代码来显示图像:

SimpleDraweeView imageview = (SimpleDraweeView) findViewById(R.id.imageview); String fileInternalPath = "...."; Uri bmpImageUri = Uri.parse(fileInternalPath); imageview.setImageURI(bmpImageUri); 

我需要知道图像何时加载,所以我可以隐藏进度条。

有任何想法吗?

您可以将控制器侦听器添加到drawee视图。 像这样的东西:

  imageView.setController(Fresco.newDraweeControllerBuilder() .setControllerListener(new ControllerListener<ImageInfo>() { @Override public void onSubmit(String id, Object callerContext) { } @Override public void onFinalImageSet(String id, ImageInfo imageInfo, Animatable animatable) { } @Override public void onIntermediateImageSet(String id, ImageInfo imageInfo) { } @Override public void onIntermediateImageFailed(String id, Throwable throwable) { } @Override public void onFailure(String id, Throwable throwable) { } @Override public void onRelease(String id) { } }).build()); 

@Surabhi Singh有一个更简单的方法(希望Kotlin不是问题):

 val controllerBuilder = Fresco.newDraweeControllerBuilder() controllerBuilder.setUri(url) controllerBuilder.oldController = drawee.controller controllerBuilder.controllerListener = object : BaseControllerListener<ImageInfo>() { override fun onFinalImageSet(id: String?, imageInfo: ImageInfo?, animatable: Animatable?) { super.onFinalImageSet(id, imageInfo, animatable) //image is loaded } } drawee.controller = controllerBuilder.build() 

使用毕加索图书馆

  ProgressBar progressBar; 

的onCreate()

  progressBar = (ProgressBar) findViewById(R.id.progressBar1); 

然后使用回调

  Picasso.with(context) .load(image_url) .into(imageview, new Callback() { @Override public void onSuccess() { progressBar.setVisibility(View.GONE); } @Override public void onError() { // TODO Auto-generated method stub } });