Android操作栏SearchView菜单图标大小

tpb*_*app 5 android android-actionbar searchview

我已经SearchView在一个活动的操作栏中实现了它并且工作正常并且将在Galaxy Nexus和大多数模拟器上按预期显示.但是在Galaxy Note 10.1和具有平板电脑大小屏幕的模拟器上,它看起来像这样:

SearchView菜单图标大小问题的屏幕截图

如您所见,搜索图标比其他图标小得多.如何获取搜索图标的图标大小以匹配其他图标?或者我如何在大屏幕上统一图标大小?

起初我想也许这个问题可能涉及到绘制的大小,但他们检查后,我可以证实的图标一直存在于项目drawable-hdpi,drawable-mdpi以及drawable-xhdpi资源文件夹,且大小与其它菜单图标相同.我使用这个工具来生成drawables,并且任何drawables的大小都没有任何不规则性.我甚至尝试使用相同的drawable作为其他菜单图标之一,结果大小差异是相同的.

图标与SearchView打开时保持相同的大小(这很好,因为否则它可能会与EditText视图的下划线重叠),但当SearchView再次关闭时,图标大小相同,并且仍然比其他图标小得多,这可能了解为何发生这种情况的线索.

活动代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.example, menu);
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        SearchManager manager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        final SearchView search = (SearchView) menu.findItem(R.id.search).getActionView();
        final MenuItem item = menu.findItem(R.id.search);
        search.setSearchableInfo(manager.getSearchableInfo(getComponentName()));
} else {
    menu.removeItem(R.id.search); // API < 11
    }   
    return true;
}
Run Code Online (Sandbox Code Playgroud)

RES /菜单/的example.xml

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

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

</menu>
Run Code Online (Sandbox Code Playgroud)

RES/XML/searchable.xml

<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/search"
    android:hint="@string/search" >
</searchable>
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml中

<intent-filter>
    <action android:name="android.intent.action.SEARCH" />
</intent-filter>

<meta-data
    android:name="android.app.default_searchable"
    android:value="com.example.ExampleActivity" />
<meta-data
    android:name="android.app.searchable"
    android:resource="@xml/searchable" />
Run Code Online (Sandbox Code Playgroud)

更新:

道歉这个问题实际上与drawables有关.具体是菜单图标的大小比例.当hdpi-drawable菜单图标应为48x48(x1.5)时,菜单图标均为64x64(x2).

所以这个问题可以通过将所有mdpi-drawable菜单图标重新调整为32x32和hdpi-drawable48x48以及xhdpi-drawable64x64来解决(感谢@rekire建议这一点).

该问题是由使用此工具的旧版本生成菜单图标引起的.因此,如果您遇到同样的问题,可以尝试使用最新版本生成新图标.

rek*_*ire 5

唯一可以想象你在一个可绘制目录中放置一个太小的图像.请检查图像尺寸与成长ldpi,mdpi,hdpi,xhdpi,xxhdpi来xxxhdpi.

默认的像素尺寸是for mdpi 32x32,for hdpi 48x48和for xhdpi 64x64.

检查我的计算器,它将为您计算正确的图像尺寸.

  • 只是为了确保你使用mdpi 32x32的像素分区,hdpi 48x48和xhdpi 64x64. (2认同)