Android 使用glide在操作栏上设置图标
我使用glide在recycler视图的ImageView中加载图像URL,效果很好 现在,我想从动态图像URL设置ActionBar图标。 如何使用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.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能否上载操作栏的屏幕截图?@ridhigetSupportActionBar().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