使用 glide 在 ActionBar 上设置图标

Set icon on ActionBar using glide

我正在使用 glide 在回收站视图的图像视图中加载图像 URLs,它工作正常。

现在,我想从动态图像设置 ActionBar 图标 URL。 我如何使用滑行来实现它?

我提到了以下 link:。 但是,我没有得到结果。而且我不想切换到毕加索。

有人可以帮助我吗?

我的代码:

 Glide.with(this)
            .load(receiver1.profilepic)
            .placeholder(R.drawable.user)
            .into(new Target<GlideDrawable>()
            {
                @Override
                public void onLoadStarted(Drawable placeholder)
                {

                }

                @Override
                public void onLoadFailed(Exception e, Drawable errorDrawable)
                {

                }

                @Override
                public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation)
                {

                    Bitmap bitmap1=((GlideBitmapDrawable) resource).getBitmap();

                    Drawable drawable = new BitmapDrawable(getResources(), bitmap1);
                    actionBar.setIcon(drawable);
                }

                @Override
                public void onLoadCleared(Drawable placeholder)
                {

                }

                @Override
                public void getSize(SizeReadyCallback cb) {

                }


                @Override
                public void setRequest(com.bumptech.glide.request.Request request)
                {

                }

                @Override
                public com.bumptech.glide.request.Request getRequest()
                {
                    return null;
                }

                @Override
                public void onStart()
                {

                }

                @Override
                public void onStop()
                {

                }

                @Override
                public void onDestroy()
                {

                }
            });

首先,我们设置 getSupportActionBar().setDisplayShowHomeEnabled(true)getSupportActionBar().setDisplayUseLogoEnabled(true),然后在管理操作栏图标可见性之后,只需使用 actionBar.setIcon(bitmap)actionBar.setIcon(drawable) 来渲染加载的图像。

首先,您应该启用如下两个设置:

getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayUseLogoEnabled(true);

然后您可以像这样将 .asDrawable()CustomTarget<Drawable>() 一起使用:

Glide.with(this).asDrawable().load(imageUrl).into(new CustomTarget<Drawable>() {
        @Override
        public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
            getSupportActionBar().setLogo(resource);
        }

        @Override
        public void onLoadCleared(@Nullable Drawable placeholder) {

        }
    });

备注:

  • 确保用您的数据替换上下文 (this) 和 imageUrl
  • 不要使用 SimpleTarget,因为它从版本 4.8.0 开始已弃用。