我的应用程序中的 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/