2016-04-21 2 views
1
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:appcompat="http://schemas.android.com/apk/res-auto" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context=".MainActivity"> 
    <item 
     android:id="@+id/action_search" 
     android:icon="@drawable/search" 
     appcompat:actionViewClass="android.support.v7.widget.SearchView" 
     appcompat:showAsAction="ifRoom" 
     android:title="Search"/> 
</menu> 

Я хочу изменить search image в правом верхнем углу, в настоящее время он является черным, и я хочу, чтобы изменить его на оранжевыйКак настроить значок поиска на панели инструментов в android?

+0

ссылка http://stackoverflow.com/questions/10445760/how-to-change-the-default-icon-on-the-searchview-to-be-use-in-the-action-bar-on – sasikumar

+0

в настоящее время он черный. Это изображение имеет цвет черный. Вы должны создать изображение с оранжевым цветом. и замените его !!! –

+0

Уже пробовал, но не работает –

ответ

1
@Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      getMenuInflater().inflate(R.menu.menu_notifications, menu); 
      this.menu = menu; 
      super.onCreateOptionsMenu(menu); 
      return true; 
     } 

     @Override 
     public boolean onOptionsItemSelected(MenuItem item) { 
      int id = item.getItemId(); 
      if (id == R.id.action_clear_all) { 
       showToast("Clear All"); 
       return true; 
      } 
      return super.onOptionsItemSelected(item); 
     } 

Создать файл XML при разрешении> меню.

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context=".YourActivityName" > 

    <item 
     android:id="@+id/action_clear_all" 
     android:title="@string/noti_clear_all" 
     android:icon="@drawable/ic_clear_all" 
     android:orderInCategory="100" 
     app:showAsAction="ifRoom" /> 

</menu> 
1

Вы можете сбросить цвет вашего MenuItem на setColorFilter.

Подходит для любого цвета.

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    super.onCreateOptionsMenu(menu, inflater); 
    inflater.inflate(R.menu.menu_menu_frag, menu); 
    // replace MenuItem with your own 
    MenuItem item = menu.getItem(0); 
    final Drawable drawable = item.getIcon(); 
    if (drawable != null) { 
     final int color = Color.RED; 
     drawable.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_IN)); 
    } 
} 
0

В onCreateOptionsMenu(Menu menu, MenuInflater inflater) вы можете использовать это:
Примечание: Вы можете использовать PorterDuff.Mode.SRC_IN вместо PorterDuff.Mode.MULTIPLY)

MenuItem searchItem = menu.findItem(R.id.action_search); 
int color = 0; // SPECIFY THE COLOUR YOU WANT HERE. I suggest you retrieve colour from colors.xml 
menuItem.getIcon().setColorFilter(color, PorterDuff.Mode.MULTIPLY); 

Но лично я бы, наверное, просто изменить цвет Drawable вручную (т.е. замените выталкиваемый цветной).

0

Использование ниже XML в вашем пункте меню

<item 
     android:id="@+id/menu_search" 
     android:actionViewClass="android.widget.SearchView" 
     android:icon="@drawable/search" 
     android:showAsAction="ifRoom|collapseActionView" 
     android:title="@string/menu_search" /> 

// Пожалуйста, убедитесь, что вы используете тот же XML пункт меню в вашей деятельности или фрагмента.

Смежные вопросы