当前位置: 首页 > 知识库问答 >
问题:

将图像动态应用于菜单项

庄弘业
2023-03-14

我试图使用glide以编程方式将图像添加到菜单项。

主菜单。xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
    android:id="@+id/action_profile_pic"
    android:icon="@mipmap/profile_pic"
    android:orderInCategory="100"
    android:title=""
    app:showAsAction="always" />

Java

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main_menu, menu);

    RequestOptions requestOptions = new RequestOptions();
    requestOptions.placeholder(R.mipmap.profile_pic);
    requestOptions.error(R.mipmap.profile_pic);

    MenuItem itemProfilePic = menu.getItem(0);
    //View view = findViewById(R.id.action_profile_pic);

    if (savedProfilePic != null) {
        Glide.with(this)
                .setDefaultRequestOptions(requestOptions)
                .load(Uri.parse(savedProfilePic))
                .into(itemProfilePic);
    }
    return true;

然而,我不能使用这种方法,因为资源是一个MenuItem而不是一个ImageView。将其转换为ImageView也不起作用。

鉴于图像不在drawables文件夹中,由用户设置,因此也不能使用以下方法,我如何实现预期结果

itemProfilePic.setActionView(savedProfilePic);接受一个整数值

最终结果

共有2个答案

殷浩慨
2023-03-14

制作自定义工具栏,然后您可以使用图像视图动态更改图像

<android.support.v7.widget.Toolbar
    android:layout_width="match_parent"
    app:contentInsetStart="0dp"
    android:background="@color/primaryColor"
    android:layout_height="wrap_content" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:src="@drawable/ic_perm_24dp"
            android:layout_alignParentEnd="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </RelativeLayout>


</android.support.v7.widget.Toolbar>
党源
2023-03-14

MenuItem接口有一个方法setIcon(Drawable d)

  1. 获取对要更新的菜单项的引用

看起来您还可以从正在使用的图像加载器库中实现自定义目标。自定义目标可以包装菜单项。

注意:由于您正在膨胀XML菜单,它很可能会被刷新。因此,在膨胀XML后也要执行图像图标更新。

 类似资料:
  • 问题内容: 我正在读取一个JSON文件,其中包含某些人的名称和图像URI。在遍历结构时,我可以打印名称,但无法显示图像。我也看到了那个阵营不支持动态图像,所以我做了一个解决办法的建议在这里。 JSON格式 主要成分 问题答案: 根据您期望的图像数量,您可以尝试将文件放置在文件夹中,如下所示: 然后在您的中,如果您要剪裁 资产:/中的 部分字符串,则可以使用: 如果要处理大量图像,则文件将变得难以维

  • 实现带动画效果的下拉菜单。用户按下菜单按钮,出现下拉按钮,用户松开菜单按钮,下拉按钮收回。 [Code4App.com]

  • 本文向大家介绍jQuery实现可用于博客的动态滑动菜单,包括了jQuery实现可用于博客的动态滑动菜单的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery实现可用于博客的动态滑动菜单的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的jQuery程序设计有所帮助。

  • 我有一系列曝光时间不同的16位图像,这些图像部分过度曝光,我想将它们合并到python中的高动态范围图像中。我知道我加载了模块,但我发现这个只适用于8位图像。那么有人知道将16位图像合并到高动态范围图片的模块吗?或者有人知道如何将16位图像合并到OpenCV的高动态范围图像吗?

  • 问题内容: 我是堆栈溢出的新手。我需要创建一个静态下拉列表,然后根据在静态下拉列表中选择的值创建一个动态下拉列表。只是Coldfusion和html。没有其他花哨的东西。因此,从第一个下拉菜单中,用户将选择:颜色,ID,官员,学校,然后点击“继续”按钮 然后在同一页面或不同页面上,如果选择了颜色,它将在数据库中进行查询并给出不同颜色的结果,如果选择了id,则将提供查询中的ID编号列表。如果选择了这

  • 问题内容: 我正在尝试为我的程序创建几种相似的视觉样式,每种样式都有不同的颜色主题。为此,我实现了使用图标来表示s和s 不同状态的用法。除了为每种可能的颜色制作一套完整的图标之外,还有什么方法可以让我只设置一套并在显示图像之前更改图像的色相/饱和度/亮度/ alpha? 问题答案: 有一种方法,但是您必须使用一些BufferedImage转换。创建它们后,请对其进行缓存或保存下来,以便以后轻松重用