问题描述
我想通过将其放在包含所有图标图像的文件夹的文件路径中来动态地在底部栏中添加图标(以避免每次都编译应用程序)。我找到了这个ticket,但我不太了解如何适应它...
@Override
public void run() {
Menu menu = bottomNavigation.getMenu();
if (menu.size() == 0) {
MenuMap = new ArrayMap<String,Integer>();
for (int i = 0; i < myitems_detail.length(); i++) {
try {
JSONObject obj = myitems_detail.getJSONObject(i);
if (obj.getString("ICONE") != null) {
int imgID = mContext.getResources().getIdentifier(obj.getString("ICONE"),"drawable",mContext.getPackageName());
MenuItem myItem = menu.add(0,obj.getInt("PAGE_ORDER"),obj.getString("MENU_NAME"))
.setIcon(imgID);
MenuMap.put(obj.getString("MENU_NAME"),obj.getInt("id"));
}
} catch (JSONException e) {
e.printstacktrace();
}
}
}
}
有什么想法吗? 预先感谢。
解决方法
我认为这对您有用 但是这种情况下,您必须输入文件的完整路径,也可以使用文件的任何网络网址
Uri filePath = null;
传递此处网址 或者
filePath = Uri.parse("String file location or url");
Bitmap myBitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),filePath);
myMenuItem.setIcon(new BitmapDrawable(getResources(),myBitmap));