Intereting Posts
Различия между IPC и ContentProvider для Android Пользовательская синхронизация не работает с учетной записью Google (com.google) на некоторых устройствах Samsung Пустая активность не создается с помощью New-> Android Activity Wizard Как сохранить анализируемый текстовый файл во внутреннем / внешнем хранилище в android Живые обои с аппаратным ускорением Запуск приложения Android в Eclipse вызывает NullPointerException Обнюхание / регистрация собственного трафика Bluetooth для Android Установить пользовательскую папку Android Download Manager Преобразование миллисекунд в TDateTime в Java Иконки дизайна материалов неожиданно перестали работать Android, почему Фрагменты не должны напрямую общаться друг с другом? Как отображать большие объемы текста на Android Платежный шлюз для Android Поле ввода скрыто, когда в телефонной записях появляется мягкая клавиатура На Android, какая разница между запущенными процессами и кэшированными фоновыми процессами?

Панель действий 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 .

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