如何更改底栏库中的图标

时间:2016-07-25 04:01:08

标签: android android-layout android-icons

我需要在我的应用中添加底部导航栏,使用我在github中找到的底栏库,我能够做得很好。

但是,另一个要求是当我点击它时更改底栏的图标。我无法做到这一点。任何人都可以帮助我如何实现

Like on clicking home the home button is green, other wise its not highlighted

我的实施如下

bottomBar = BottomBar.attach(view,savedInstanceState);
        bottomBar.useDarkTheme(false);

        bottomBar.setItemsFromMenu(R.menu.bottom_home_menu, new OnMenuTabSelectedListener() {

         @Override
         public void onMenuItemSelected(@IdRes int menuItemId) {
         switch (menuItemId){
         case R.id.menu_home:
         Snackbar.make(view,"Home tab",Snackbar.LENGTH_SHORT).show();
         break;

         case R.id.menu_to_do:
         Snackbar.make(view,"To Do tab",Snackbar.LENGTH_SHORT).show();
         break;

         case R.id.menu_add_books:
         Snackbar.make(view,"Add",Snackbar.LENGTH_SHORT).show();
         break;

         case R.id.menu_notification:
         Snackbar.make(view,"Notification",Snackbar.LENGTH_SHORT).show();
          break;

         case R.id.menu_profile:
         Snackbar.make(view,"Profile",Snackbar.LENGTH_SHORT).show();
         break;

             }
          }
        });

根据我看过的教程,它说要添加一个菜单,我做了如下所示。这是我在我的演示中使用的确切代码。     它在下面的片段中提到过。

 <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item
            android:id="@+id/menu_home"
            android:icon="@drawable/icon_home_hdpi"
            android:title="Home"/>
        <item
            android:id="@+id/menu_to_do"
            android:icon="@drawable/icon_todo_hdpi"
            android:title="To Do"/>
        <item
            android:id="@+id/menu_add_books"
            android:icon="@drawable/icon_add_hdpi"
            android:title="Add"/>
        <item
            android:id="@+id/menu_notification"
            android:icon="@drawable/icon_notification_hdpi"
            android:title="Notification"/>
        <item
            android:id="@+id/menu_profile"
            android:icon="@drawable/icon_profile_hdpi"
            android:title="Profile"/>

    </menu>

1 个答案:

答案 0 :(得分:0)

我没有要测试的库,但可能你可以为原始图标设置StateListDrawable,并为不同的状态设置不同的图像。

您只需要将此文件添加为drawable,并将此xml作为图像背景。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
  <item android:drawable="@drawable/numpad_button_bg_selected" android:state_selected="true"></item>
  <item android:drawable="@drawable/numpad_button_bg_pressed" android:state_pressed="true"></item>
  <item android:drawable="@drawable/numpad_button_bg_normal"></item>
</selector>