我从https://github.com/nglauber/playground/tree/master/android/DemoSearch
分叉了一个GitHub项目我想将搜索图标的颜色设置为纯白色。目前,搜索图标为灰色,明显不同于“演示搜索”的白色文字。
编辑:
基于一些建议,我使用纯白色(确切地说,RGB = 255,255,255)创建了一个新图标,并使用它代替android:ic_menu_search。 Android将使用灰色调(使用屏幕截图中的颜色选择工具进行验证)对其进行着色,即使原始图标为纯白色。
这告诉我Android正在故意调整图标。我希望有一些方法可以控制设置或更改Android工具栏中的图标颜色。
答案 0 :(得分:6)
我找到了自己问题的答案。我决定将其记录下来以便能够帮助其他Android开发人员。
简短的回答是是的,我们可以在Android工具栏中维护图标颜色,我们需要通过导入资源
来实现我遇到的原始问题是由于
在此设置中,Android Studio Image Asset会在保存到res项目文件夹时因某种未知原因稍微更改图标颜色。当Android最终显示在屏幕上时,Android将进一步更改图标颜色。最终结果是我在问题中描述的内容,原始纯白色图标将变为灰色。
如果我们使用带有图标类型的SVG或PNG作为启动器图标,则图标将不会有颜色更改。该图标将能够保留其原始颜色。这让我相信它是Android Studio中的错误,而不是设计指南帮助。
此Stack Overflow post报道了类似的观察结果。 @markj报道“结果图像只是无用的灰色形状”。
生成的Android环境截图
维持颜色
颜色已更改
答案 1 :(得分:0)
您必须制作白色图标并将其添加到res / menu`文件中的menu_search.xml
。
目前是android:icon="@android:drawable/ic_menu_search"
。但是你可以在这里使用自己的图标。然后,您可以在android:icon="@drawable/ic_menu_search"
文件中将其写为res/menu
。
答案 2 :(得分:0)
你必须使用菜单。将searchView添加为菜单中的项目
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_search"
android:title="Search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="ifRoom"
android:orderInCategory="1"
android:menuCategory="secondary"
android:visible="true"
/>
</menu>
并在您的活动中覆盖此方法
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
menuItem = menu.findItem(R.id.menu_search);
searchView = (SearchView) MenuItemCompat.getActionView(menuItem);
searchView.setIconifiedByDefault(true);
//get search icon View and set your drawable
ImageView icon = (ImageView)searchView.findViewById(R.id.search_button);
icon.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.ic_search_white_24dp));
return true;
}
答案 3 :(得分:0)
您只需更改为使用支持库中的SearchView类
imgUrl