2016-04-21 87 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

您可以通過setColorFilter重置MenuItem的顏色。

Drawable可以更改爲任何顏色。

@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。