Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用glide在操作栏上设置图标_Android_Android Actionbar_Android Glide - Fatal编程技术网

Android 使用glide在操作栏上设置图标

Android 使用glide在操作栏上设置图标,android,android-actionbar,android-glide,Android,Android Actionbar,Android Glide,我使用glide在recycler视图的ImageView中加载图像URL,效果很好 现在,我想从动态图像URL设置ActionBar图标。 如何使用glide实现它 我引用了以下链接:。 但是,我没有得到结果。我不想换成毕加索 有人能帮我吗 我的代码: Glide.with(this) .load(receiver1.profilepic) .placeholder(R.drawable.user) .into(new

我使用glide在recycler视图的ImageView中加载图像URL,效果很好

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

我引用了以下链接:。 但是,我没有得到结果。我不想换成毕加索

有人能帮我吗

我的代码:

 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()
                {

                }
            });
Glide.with(这个)
.load(接收方1.profilepic)
.占位符(R.drawable.user)
.into(新目标)
{
@凌驾
已开始加载公共void(可绘制占位符)
{
}
@凌驾
public void onload失败(异常e,可提取错误可提取)
{
}
@凌驾

public void onResourceReady(GlideDrawable resource,GlideAnimation首先,我们设置
getSupportActionBar().setDisplayShowHomeEnabled(true)
getSupportActionBar().setDisplayUseLogoEnabled(true)
,然后在管理操作栏图标可见性之后,只需使用
actionBar.setIcon(位图)
actionBar.setIcon(可绘制)
以渲染加载的图像。

首先,应启用以下两种设置:

getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayUseLogoEnabled(true);
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) {

        }
    });
然后您可以使用
.asDrawable()
以及
CustomTarget()
如下所示:

getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayUseLogoEnabled(true);
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) {

        }
    });
Glide.with(this).asDrawable().load(imageUrl).into(new CustomTarget()){
@凌驾

public void onResourceReady(@NonNull Drawable resource,@Nullable transition能否上载操作栏的屏幕截图?@ridhi
getSupportActionBar().setDisplayShowHomeEnabled(true)
getSupportActionBar().setDisplayUseLogoEnabled(true)
,然后
getSupportActionBar().setIcon()
。您还可以使用工具栏并根据需要进行自定义。此外,您还可以使用
new SimpleTarget
和设置
actionBar.setIcon(可绘制)替换所有这些代码
Thank you@Debdeep。您的解决方案对我很有效。请将is作为答案发布,以便我可以将其标记为已接受的答案。使用新的SimpleTarget,然后设置actionBar.setIcon(可绘制)帮助了我。谢谢。我想问的另一件事是如何使用actionBar.setIcon(位图)?因为据我所知,我们无法将ActionBar图标直接设置为位图。@Debteep就像您在示例中所做的那样。对于这种情况,您可以使用
Glide.asBitmap()
new SimpleTarget