2010-04-10 4 views
1

Можем ли мы установить заголовок для пункта меню на Android, если у него есть значок с возможностью рисования?Написание текста на значок меню в Android?

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

Возможно ли это или нет?

Надежда, чтобы получить ответ в ближайшее время.

С уважением Сунил

ответ

3

Это, безусловно, возможно. Код, как это работает:

public boolean onCreateOptionsMenu(Menu menu){ 
    menu.add(0, MENU_PAUSE, 0, "Pause").setIcon(R.drawable.pause); 
    return true; 
} 

Это создает меню с одним пунктом в нем, на который ссылается междунар MENU_PAUSE (уникальный идентификационный номер), с названием «Пауза» и паузы значок из Рез/Drawable.

Если это не поможет вам, не могли бы вы показать нам свой код?


Редактировать, чтобы предоставить больше информации на основе комментариев:

Оказывается, размер изображения вопросов. Изображения меню Android по умолчанию - 48 * 48 или меньше, поэтому кажется, что нужно использовать одинаковые размеры. Примечание. Я не экспериментировал с разными размерами экрана, это было только с экраном 320x480.

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

<item name="android:panelBackground">@drawable/yourMenuDrawable</item> 
<item name="android:panelFullBackground">@drawable/yourOtherMenuDrawable</item> 

Нормальное меню использует panelFullBackground, так что должно быть один заменить первый. Вы можете найти изображения по умолчанию, которые Android использует в yourSDKfolder/platform/xxx/data/res /, и они называются menu_background.9.png и menu_background_fill_parent_width.9.png.

Я нашел эту информацию, глядя по умолчанию styles и themes файлы доступны из Android исходного кода веб-сайта

+0

что размер изображения, которое вы используете? У меня есть четыре пункта меню, поэтому для каждого значка требуется 2 * 2 и половина экрана. Я делаю то же самое. Текст отображается, если я не добавляю значок. Значок в моем случае составляет 160 * 68. Таким образом, он занимает всю высоту и ширину элемента меню, поэтому текст не отображается. Можем ли мы отображать текст поверх значка? Пожалуйста помоги. – sunil

+0

Ага, ты прав. Размер используемого изображения имеет значение. Я не заметил, потому что я использую стандартные изображения для Android - они все 48x48 или меньше, поэтому, похоже, вам придется изменять размеры ваших изображений. –

+0

О, хорошо. Можем ли мы изменить цвет элемента меню из белого по умолчанию на другое, а затем поместить на него значок 48 * 48 и текст под ним? Можем ли мы это сделать? Дайте мне знать, если у вас есть идея по этому поводу. Спасибо за ответ. – sunil

3

Да, вы можете. Просто добавьте withText в атрибут android:showAsAction. Пример:

<item android:id="@+id/menu_save" 
     android:icon="@drawable/ic_menu_save" 
     android:title="@string/menu_save" 
     android:showAsAction="ifRoom|withText" /> 

https://developer.android.com/guide/topics/ui/actionbar.html Смотреть подробнее :)