从URL设置MenuItem图标 - Android

Mal*_*lar 2 android menuitem android-actionbar

我想在我的ActionBar中设置一个MenuItem,它会导致我的应用程序中的用户个人资料页面.我想要的图标是他的个人资料图片,我有URL,可以创建一个BitMap.

图像不存储在我的项目文件夹中或本地的任何位置,因此我无法从R.drawable中获取它.

有人可以帮我设置一个用URL创建的位图作为MenuItem图标吗?谢谢您的帮助!

Jon*_*ica 7

您可以执行以下操作来设置位图中的图标:

myMenuItem.setIcon(new BitmapDrawable(getResources(), myBitmap));
Run Code Online (Sandbox Code Playgroud)

在你的代码中,这看起来有点像这样:

public boolean onCreateOptionsMenu( Menu menu ) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate( R.menu.actionbar, menu );
    userItem = menu.findItem(R.id.userItem);

    Bitmap myBitmap = //get your bitmap
    userItem.setIcon(new BitmapDrawable(getResources(), myBitmap));

    return menu;
}
Run Code Online (Sandbox Code Playgroud)

您需要从URL获取文件并将其转换为Bitmap第一个文件.请注意,这将很慢,因为如果您在启动应用程序时执行此操作,则用户必须等到文件下载才会显示应用程序.如果您的图标不经常更改,我建议将其缓存在设备上并重新使用本地存储的副本.

另请参阅此处的 "在运行时更改菜单"部分.