2010-04-10 6 views
1

Pouvons-nous définir un titre pour un élément de menu dans Android s'il a une icône de drawable?Écrire un texte sur l'icône du menu dans Android?

J'ai une icône pour un élément de menu et si je définis l'icône, le titre qui est défini pour cet élément de menu n'est pas visible.

Est-ce possible ou non?

Nous espérons recevoir une réponse rapidement.

Cordialement Sunil

Répondre

3

Il est certainement possible. Code comme cela fonctionne:

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

Cela crée un menu avec un élément en elle, mentionnée par l'int MENU_PAUSE (un numéro d'identification unique), avec le titre « Pause » et l'icône pause de res/drawable.

Si cela ne vous convient pas, pourriez-vous nous indiquer votre code?


Modifier pour fournir plus d'informations en fonction des commentaires:

Il se trouve la taille des questions images. Les images de menu Android par défaut sont 48 * 48 ou moins, il semblerait donc que l'on doit utiliser des tailles similaires. Note: Je n'ai pas expérimenté avec différentes tailles d'écran, c'était seulement avec l'écran 320x480.

L'alternative est de changer l'arrière-plan par défaut du menu. Ceux-ci peuvent être modifiés en définissant un thème pour votre application dans le manifeste et la mise en ces lignes:

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

Le menu normal utilise panelFullBackground, ce qui devrait être celui que vous remplacez d'abord. Vous pouvez trouver les images par défaut qu'utilise Android dans votre dossierSDK/plateformes/xxx/data/res /, et elles s'appellent menu_background.9.png et menu_background_fill_parent_width.9.png.

Je trouve ces informations en regardant la valeur par défaut styles et themes fichiers disponibles sur le site Web du code source Android

+0

Quelle est la taille de l'image que vous utilisez? J'ai quatre éléments de menu, donc il faut 2 * 2 et la moitié de l'écran pour chaque icône. Je fais la même chose. Le texte est affiché si je n'ajoute pas d'icône. L'icône dans mon cas est de 160 * 68. Donc, il occupe toute la hauteur et la largeur de l'élément de menu et donc le texte ne s'affiche pas. Pouvons-nous afficher le texte en haut de l'icône? S'il vous plaît aider. – sunil

+0

Aha, vous avez raison. La taille de l'image utilisée est importante. Je n'avais pas remarqué parce que j'utilise les images Android par défaut - ils sont tous 48x48 ou plus petits, donc il semblerait que vous devrez redimensionner vos images. –

+0

Oh ok. Pouvons-nous changer la couleur de l'élément de menu du blanc par défaut à quelque chose d'autre, puis placer l'icône de 48 * 48 dessus et le texte ci-dessous? Pouvons-nous faire cela? Faites-moi savoir si vous avez une idée à ce sujet. Merci d'avoir répondu. – sunil

3

Oui, vous pouvez. Ajoutez simplement withText à l'attribut android:showAsAction. Exemple:

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

Voir https://developer.android.com/guide/topics/ui/actionbar.html pour plus de détails :)