我的ActionBar的菜单布局如下:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/itemSearch"
android:icon="@drawable/actionbar_icon_search"
android:showAsAction="ifRoom|collapseActionView"
android:actionViewClass="android.widget.SearchView"
android:title="Search"/>
</menu>下面是设置代码:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.actionbar_default, menu);
SearchView searchView=(SearchView) menu.findItem(R.id.itemSearch).getActionView();
int searchPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
View searchEditText = searchView.findViewById(searchPlateId);
((TextView) searchEditText).setTextColor(Color.WHITE);
searchView.setOnCloseListener(new OnCloseListener() {...});
searchView.setOnQueryTextListener(new OnQueryTextListener() {...});
}一切都很好,除了一件事:在我的华硕平板电脑(TF-201,Android3.2.1)上,图形模糊:

如果删除android:actionViewClass="android.widget.SearchView",一切看起来都很正常:

此问题不在4.1.2仿真器上重现。我试着在我的onCreateOptionsMenu()中只保留菜单通胀代码,但这并没有帮助。
如何解决这个问题?
发布于 2013-06-21 08:24:11
所以我把这个解决方案搞砸了,但是,如果不使用ActionBarSherlock库,它只为API14和更高版本声明了正确的兼容性。
第一个解决方案(API 14+)
重要的是连接到应用程序的主题上下文,否则您将得到SearchView (模糊图标)的最低可能设计。
以编程方式创建SearchView
片段
SearchView searchView =
new SearchView(getActivity().getActionBar().getThemedContext());活性
SearchView searchView = new SearchView(getActionBar().getThemedContext());第二个解决方案(ABS兼容性,API 8+)
动作条夏洛克片段
SearchView searchView =
new SearchView(getSherlockActivity().getSupportActionBar().getThemedContext());动作栏神探夏洛克活动
SearchView searchView = new SearchView(getSupportActionBar().getThemedContext());第三种解决方案(API 11+)
在某些情况下,设置SearchView.setBackgroundColor(int color)使图标不那么模糊,请尝试Color.WHITE或Color.BLACK。
注意到,这改变了MenuItem的背景色,无论是否折叠,以及例如。通过使用主题Holo.Light.DarkActionBar,您需要使用正确的颜色,根据您的ActionBar风格。
发布于 2015-12-19 15:03:17
我也经历过同样的问题,但其他的答案并没有解决我的问题。我正在从AppCompatActivity扩展我的活动类。我的搜索视图图标在Android4.4上看起来很模糊。*在Android5.*上它看起来很好,没有任何问题。
我将xml更改为:
<item android:id="@+id/action_search"
android:icon="@drawable/ic_search_white_24dp"
app:showAsAction="always"
app:actionViewClass="android.support.v7.widget.SearchView"
android:iconifiedByDefault="true" />和进口
import android.support.v7.widget.SearchView;而不是import android.widget.SearchView;
问题解决了。
https://stackoverflow.com/questions/13977952
复制相似问题