2016-01-16 2 views
2

Я хочу изменить значок загрузочного ящика запуска. Я хочу установить пользовательский значок, как я могу это сделать, пожалуйста, помогите.Как изменить цвет значка закладки выдвижного ящика на Android

enter image description here

На рисунке выше показывает три белые линии уложены друг на друга в панели инструментов, я хочу изменить эту иконку.

Вот мой FragmentDrawer.java:-

public class FragmentDrawer extends Fragment { 

    private static String TAG = FragmentDrawer.class.getSimpleName(); 

    private RecyclerView recyclerView; 
    private ActionBarDrawerToggle mDrawerToggle; 
    private DrawerLayout mDrawerLayout; 
    private NavigationDrawerAdapter adapter; 
    private View containerView; 
    private static String[] titles = null; 
    private FragmentDrawerListener drawerListener; 
    private HashMap<String,String> category = new HashMap<>(); 
    private List<String> cat_array = new ArrayList<>(); 
    private static String[] mainTitle = null ; 
    private ImageView iicon; 

    public FragmentDrawer() { 

    } 

    public void setDrawerListener(FragmentDrawerListener listener) { 
     this.drawerListener = listener; 
    } 

    public static List<NavDrawerItem> getData() { 
     List<NavDrawerItem> data = new ArrayList<>(); 

     //  Log.d("who","1"); 
     // preparing navigation drawer items 
     for (int i = 0; i <1; i++) { 
      NavDrawerItem navItem = new NavDrawerItem(); 
      navItem.setTitle(titles[i]); 
      data.add(navItem); 
     } 
     return data; 
    } 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // Log.d("who", "2"); 

     // new HomeMenu().execute("http://opencart.codeniques.com/shopping/?route=feed/web_api/hmenu&key=test123$"); 

     titles = getActivity().getResources().getStringArray(R.array.nav_drawer_labels); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflating view layout 
     View layout = inflater.inflate(R.layout.fragment_navigation_drawer, container, false); 
     recyclerView = (RecyclerView) layout.findViewById(R.id.drawerList); 

     adapter = new NavigationDrawerAdapter(getActivity(), getData()); 
     recyclerView.setAdapter(adapter); 
     iicon = (ImageView)layout.findViewById(R.id.iicon); 
     recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 
     recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getActivity(), recyclerView, new ClickListener() { 
      @Override 
      public void onClick(View view, int position) { 
       drawerListener.onDrawerItemSelected(view, position); 
       mDrawerLayout.closeDrawer(containerView); 
      } 
      @Override 
      public void onLongClick(View view, int position) { 

      } 
     })); 

     return layout; 
    } 


    public void setUp(int fragmentId, DrawerLayout drawerLayout, final Toolbar toolbar) { 
     containerView = getActivity().findViewById(fragmentId); 
     mDrawerLayout = drawerLayout; 
     mDrawerToggle = new ActionBarDrawerToggle(getActivity(), drawerLayout,toolbar, R.string.drawer_open, R.string.drawer_close) { 
      @Override 
      public void onDrawerOpened(View drawerView) { 
       super.onDrawerOpened(drawerView); 
       getActivity().invalidateOptionsMenu(); 
      } 

      @Override 
      public void onDrawerClosed(View drawerView) { 
       super.onDrawerClosed(drawerView); 
       getActivity().invalidateOptionsMenu(); 
      } 

      @Override 
      public void onDrawerSlide(View drawerView, float slideOffset) { 
       super.onDrawerSlide(drawerView, slideOffset); 
       toolbar.setAlpha(1 - slideOffset/2); 
      } 
     }; 

     mDrawerLayout.setDrawerListener(mDrawerToggle); 
     mDrawerLayout.post(new Runnable() { 
      @Override 
      public void run() { 
       mDrawerToggle.syncState(); 
      } 
     }); 

    } 

    public static interface ClickListener { 
     public void onClick(View view, int position); 

     public void onLongClick(View view, int position); 
    } 

    static class RecyclerTouchListener implements RecyclerView.OnItemTouchListener { 

     private GestureDetector gestureDetector; 
     private ClickListener clickListener; 

     public RecyclerTouchListener(Context context, final RecyclerView recyclerView, final ClickListener clickListener) { 
      this.clickListener = clickListener; 
      gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { 
       @Override 
       public boolean onSingleTapUp(MotionEvent e) { 
        return true; 
       } 

       @Override 
       public void onLongPress(MotionEvent e) { 
        View child = recyclerView.findChildViewUnder(e.getX(), e.getY()); 
        if (child != null && clickListener != null) { 
         clickListener.onLongClick(child, recyclerView.getChildPosition(child)); 
        } 
       } 
      }); 
     } 

     @Override 
     public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { 

      View child = rv.findChildViewUnder(e.getX(), e.getY()); 
      if (child != null && clickListener != null && gestureDetector.onTouchEvent(e)) { 
       clickListener.onClick(child, rv.getChildPosition(child)); 
      } 
      return false; 
     } 

     @Override 
     public void onTouchEvent(RecyclerView rv, MotionEvent e) { 
     } 

     @Override 
     public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { 

     } 
    } 

    public interface FragmentDrawerListener { 
     public void onDrawerItemSelected(View view, int position); 
    } 
} 

Я новичок в андроид развития, пожалуйста, помогите мне.

+1

Возможный дубликат [Изменение панели навигации значок на панели действий андроида] (http://stackoverflow.com/questions/24482825/changing-navigation-drawer-icon-on-action- bar-android) –

+0

Я бы предложил загрузить значок с желаемым цветом в качестве альтернативы. Проверьте этот [сайт] (http://www.icons4android.com/), он предоставляет множество значков Android разных цветов на выбор. – hehe

+0

Эти значки установлены по умолчанию не мной. @gjnidea –

ответ

0

Попробуйте

<style name="MyTheme" parent="Theme.AppCompat"> 
    <item name="drawerArrowStyle">@style/MyDrawerArrowToggle</item> 
</style> 

<style name="MyDrawerArrowToggle" parent="Widget.AppCompat.DrawerArrowToggle"> 
    <item name="color">@color/your_color</item> 
</style> 
+0

Спасибо, что он работает отлично. –