Панель действий Android SearchView Значок Размер значка

Я реализовал SearchView в панели действий активности, и он отлично работает и будет отображаться, как ожидалось, в Galaxy Nexus и большинстве эмуляторов. Однако на Galaxy Note 10.1 и эмуляторах с экранами размера планшета выглядит так:

Скриншот проблемы размера значка меню SearchView

Как видите, значок поиска намного меньше, чем другие значки. Как я могу получить размер значка значка поиска в соответствии с другими значками? Или как я могу форматировать размеры значков на больших экранах?

Сначала я подумал, что, возможно, проблема может быть связана с размером drawable, но после проверки я могу подтвердить, что значки постоянно существуют в drawable-xhdpi ресурсов drawable-xhdpi drawable-hdpi , drawable-mdpi и drawable-xhdpi и имеют тот же размер, что и Другие значки меню. Я использовал этот инструмент для создания чертежей, и нет никаких размеров в размерах любой из чертежей. Я даже пробовал использовать один и тот же чертеж, как один из других значков меню, и результирующая разница в размерах одинакова.

Значок остается того же размера с открытым 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; } 

Рез / меню / 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> 

Рез / XML / searchable.xml

 <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/search" android:hint="@string/search" > </searchable> 

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" /> 

ОБНОВИТЬ:

Извиняюсь, что эта проблема действительно была связана с чертежами. В частности, соотношение размеров значков меню. hdpi-drawable меню, hdpi-drawable были все 64×64 (x2), когда они должны были быть 48×48 (x1.5).

Таким образом, эту проблему можно решить, переустановив все mdpi-drawable меню mdpi-drawable на 32×32 и hdpi-drawable до 48×48 и xhdpi-drawable до 64×64 (спасибо @rekire за это предложение).

Проблема была вызвана использованием более старой версии этого инструмента для создания значков меню. Поэтому, если у вас есть такая же проблема, вы можете попробовать использовать последнюю версию для создания новых значков.

Единственное, что я мог представить, что вы помещаете слишком маленькое изображение в один из доступных каталогов. Убедитесь, что размеры изображения растут от ldpi , mdpi , hdpi , xhdpi , xxhdpi до xxxhdpi .

mdpi 32x32 пикселей по умолчанию для mdpi 32x32 , для hdpi 48x48 и для xhdpi 64x64 .

Проверьте также мой калькулятор , он рассчитает правильные размеры изображения для вас.

Intereting Posts
Всплывающее меню при нажатии кнопки в действии. Получить доступ к приложению laravel из приложения Android с помощью токена csrf Настройка свойства прокрутки в RecyclerView вызывает сбой моего приложения Отправить данные (ArrayList) из Activity to Fragment CreateFromStream в Android возвращает null для определенного URL-адреса Что такое ярлык для автоматического импорта всех в Android Studio? Как создать квадратную кнопку, которая настраивается на высоту элемента списка? Ant после обновления инструментов Android SDK до версии 14 Как найти имя пакета, которое было удалено при использовании Intent.ACTION_PACKAGE_REMOVED Android: Eclipse – Не показывать исключения Установить изображение в правом верхнем углу текста Android onKeyListener на EditText реагирует только на клавишу «Enter» при нажатии дважды Уведомление, если Bluetooth отключен в приложении Android VectorDrawable – доступен ли он как-то для до-Lollipop версий Android? Gmail подписывается на интеграцию в приложение для Android, profilePhoto всегда null?