我正在使用MaterialDrawer lib 在 Android 中生成导航抽屉,我还尝试从外部源获取图像并将其设置为 DrawerItem 对象中的图标,为此我正在使用Glide v4 lib 下载来自外部源的图像,但不确定如何更新我在抽屉中的每个 DrawerItem 中的图标占位符。这是我到目前为止所做的:
@Override
protected void onCreate(Bundle savedInstanceState)
{
...
ArrayList<IDrawerItem> drawerItems = new ArrayList<IDrawerItem>();
String icon = "http://myiconwebsite.com/myicon.png";
//create Drawer Item obj
PrimaryDrawerItem primary = new PrimaryDrawerItem();
//set title
primary.withName("Test");
primary.withIdentifier(1);
primary.withSelectable(false);
//define image view for Glide
//I'm defining this image view so I can load the downloaded image into it so I can get the loaded image as Drawable
final ImageView iv = new ImageView(this);
//load the image in the view
Target rb = Glide.with(this).asDrawable().load(icon).into(iv);
//get the drawable object from the image view
Drawable dr = iv.getDrawable();
//set the icon of this drawer
primary.withIcon(dr);
//add it to the list of drawers
drawerItems.add(primary);
//create our drawer
DrawerBuilder result = new DrawerBuilder();
result.withActivity(this);
result.withDrawerItems (drawerItems);
...
result.build();
...
}
请注意,我正在尝试使用下载图像Glide
并将图像加载到 中ImageView
,然后Drawable
使用iv.getDrawable()
. 我这样做是因为我需要对象是Drawable
该方法primary.withIcon(dr)
接受的对象,以便在抽屉中显示该图标。现在的问题是当我调用iv.getDrawable()
它时返回null
并且不能按预期工作。如何做到这一点?
我也可能在这里做错了什么?正如我在文档中看到的那样,他们提到了喜欢Glide
并且Picasso
可以支持的库,但是他们没有添加足够的示例来说明如何做到这一点。请记住,我还是 Java 和 Glide 的新手,所以我不确定这是否是这样做的方法。