如何在我的android项目中更改搜索图标的颜色?

时间:2019-04-18 13:18:45

标签: android android-layout searchview android-search

我已经在菜单文件夹中添加了搜索图标,并为此创建了menu.xml文件。在这里,我使用Android Image Asset创建了带有浅绿色的自定义搜索图标。

当我在drawable中添加此浅绿色搜索图标并运行该项目时,它带有白色。搜索提示和搜索文本也以白色显示。 由于我有白色的操作栏,因此所有这些搜索图标都根本看不到。请帮助纠正此问题。

我已经为搜索图标创建了menu.xml文件,还在可绘制文件夹中添加了具有浅绿色的搜索图标。我正在使用Theme.AppCompat.Light.DarkActionBar,并且将其操作栏颜色设置为白色。

Styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="titleTextColor">@color/titleColor</item>
        <item name="colorControlNormal">@color/colorAccent</item>

menu.xml文件:

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

    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        app:showAsAction="always"
        app:actionViewClass="android.support.v7.widget.SearchView"
        android:title="@string/search_string" />
    <!--<item
        android:id="@+id/action_settings"
        android:title="Settings"/>-->
 </menu>

活动代码:

public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu, menu);
        MenuItem item = menu.findItem(R.id.action_search);

//additonal code

return super.onCreateOptionsMenu(menu);

我希望自定义颜色搜索图标仅显示在白色操作栏中,而不是白色搜索图标(现在显示)。搜索查询搜索提示为黑色。请帮助...

3 个答案:

答案 0 :(得分:0)

最好的选择是对菜单中的项目使用自定义布局。

您也可以尝试遵循此article

答案 1 :(得分:0)

您需要使用android.support.v7.widget.SearchView:

<style name="SearchViewStyle" parent="Widget.AppCompat.SearchView">
    <!-- Gets rid of the search icon -->
    <item name="searchIcon">@drawable/ic_search</item>
    <!-- Gets rid of the "underline" in the text -->
    <item name="queryBackground">@color/white</item>
    <!-- Gets rid of the search icon when the SearchView is expanded -->
    <item name="searchHintIcon">@null</item>
    <!-- The hint text that appears when the user has not typed anything -->
    <item name="queryHint">@string/search_hint</item>
</style>

答案 2 :(得分:0)

对我有用的是设置前景。这会改变搜索视图的图标颜色。

<style name="MySearchViewTheme" parent="Widget.AppCompat.SearchView">
    <item name="android:background">@color/grey_dark</item>
    <!-- Changes icons color --> 
    <item name="android:colorForeground">@color/grey_400</item>
</style>