Android / Java:如何在我的底部栏中动态添加图标

问题描述

我想通过将其放在包含所有图标图像的文件夹的文件路径中来动态地在底部栏中添加图标(以避免每次都编译应用程序)。我找到了这个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));

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...