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 } });