android - android中导航 View 中菜单项的动态图标

标签 android image menu navigation-drawer navigationview

我的应用程序中的 support.design.widget.NavigationView。我能够将菜单项(图像+文本)动态添加到导航 View 。图像是使用 SetIcon API 从可绘制对象添加的。但我的问题是现在我需要添加从服务器动态获取的图像。我在谷歌上浏览但没有找到任何关于如何做到这一点的解决方案。 SetIcon 只会将可绘制对象或资源 ID 作为参数。请让我知道如何实现这一目标。

最佳答案

为了将从 API 调用中检索到的图像添加到您的 NavigationView 中,您必须将该图像转换为 Drawable(您已经回答了您自己的问题! ) :)。

为此,您首先必须将 ByteArray 转换为 Bitmap,如下所示:

Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata , 0, bitmapdata .length);

然后您可以将 Bitmap 转换为 Drawable,如下所示:

Drawable d = new BitmapDrawable(getResources(), bitmap);

在您拥有Drawable 之后,您可以像这样更新您的Menu:

menu.getItem(0).setIcon(yourNewDrawable);

或者,如果您愿意,可以在 Menu 初始化时保留对 MenuItem 变量的引用,并在您认为合适时更改它(比如当您的 API 调用完成时!) .

希望这对您有所帮助。

关于android - android中导航 View 中菜单项的动态图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34205253/

相关文章:

android - "Couldn' t 上传。再试一次。”Google Play 控制台上的错误

android - POST 请求改造 2.0

javascript - 单击后更改图像

jquery - JQuery 对话框后面的 CSS 下拉菜单

php - 关闭表中的多个垂直菜单

PHP 类别菜单 (mySQL)

java - 无法更新 SQLite 数据库中的整数字段

android - 在对话框android中按关闭按钮时出错

python - 如何在保持分辨率的同时将 2D float numpy 数组无损保存到灰度图像中?

java - 来自 ACTION_IMAGE_CAPTURE 的图像已旋转