Comment changer la police personnalisée d'un élément de menu Android?
J'ai le texte suivant Android Java et XML code. Je veux changer la police des Éléments de Menu de mon application. Je sais seulement que nous pouvons changer la police d'un TextView à l'aide de setTypeface mais n'a pas pu trouver de toute façon pour l'Élément de Menu.
Code JAVA-:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.action_refresh1:
Toast.makeText(this, "Item1 Selected", Toast.LENGTH_SHORT)
.show();
break;
case R.id.action_refresh2:
Toast.makeText(this, "Item2 Selected", Toast.LENGTH_SHORT)
.show();
break;
default:
break;
}
}
Code XML-:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_refresh1"
android:orderInCategory="100"
android:showAsAction="always"
android:title="Item1"/>
<item
android:id="@+id/action_refresh2"
android:orderInCategory="100"
android:showAsAction="always"
android:title="Item2"/>
</menu>
Je veux changer la police de deux élément de menu , mais vous ne savez pas comment intégrer settypface pour l'Élément de Menu.
source d'informationauteur animation123
Vous devez vous connecter pour publier un commentaire.
vous devez fournir une mise en page personnalisée pour l'élément de menu.
Tout d'abord, dans votre menu XML définir l'une des opérations suivantes
CAS 1 si vous utilisez la bibliothèque de prise en charge:
CAS 2 si vous êtes pas à l'aide de la bibliothèque de prise en charge:
Puis dans le actionLayout (layout_menu_save.xml dans mon exemple) écrire le code suivant:
L'arrière-plan dessiné (background_transparent_stateful) est utile pour avoir le retour tactile sur votre mise en page personnalisée:
Cette façon, vous aurez un texte avec une police personnalisée sur la gauche, comme une étiquette avec une icône sur la droite.
Évidemment, vous pouvez personnaliser la mise en page comme vous le préférez!
MODIFIER:
Si vous utilisez la bibliothèque de prise en charge et de votre activité Thème s'étend le AppCompatTheme vous pouvez obtenir le typique Sucette "effet d'entraînement" pour une meilleure regardant le retour tactile.
Il suffit de remplacer l'arrière-plan personnalisée avec:
XML
DE L'ACTIVITÉ OU DU FRAGMENT
Vous pouvez également utiliser un
SpannableStringBuilder
lorsque vous ajoutez un élément de menu avec unTypefaceSpan
. Pour chaque élément de menu faire quelque chose commeJ'ai trouvé cette solution est utile pour moi .j'espère que ça aidera plein de nouveaux surfeurs.
votre menu main.xml
Après avoir gonflé le menu personnalisé, vous pouvez faire référence à l'élément du menu. Lorsque vous obtenez la référence à l'élément de menu, vous serez en mesure de personnaliser l'élément à afficher l'icône et le texte Unicode. Votre image de l'icône du fichier doit être stocké dans le
La réponse par @brahmyadigopula fonctionne bien.
Ici est juste une version plus complète par souci de simplification:
Le Menu
Dans votre Activité ou de Fragment:
Suffit de définir itemTextAppearance propriété de la la fenêtre des éléments du système ou de style personnalisée: