How do i add custom font on menu item in Android?












3















I have been trying to add a font to my menu items and have tried few solutions i found but none of them worked for me.



Method 1 :How to set custom typeface to items in NavigationView?



Method 2:



Menu XML



<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_notification1"
android:icon="@mipmap/filter_button"
android:title="action_notification"
app:showAsAction="always">
<menu>
<item
android:id="@+id/navmenu_cat"
android:icon="@mipmap/categories"
android:orderInCategory="100"
android:title="@string/categories" />
<item
android:id="@+id/navmenu_date"
android:icon="@mipmap/calendar"
android:orderInCategory="100"
android:title="@string/date" />
</menu>
</item>
</menu>


MyClass



public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.work_history, menu);
for (int i = 0; i < menu.size(); i++) {
Typeface face = Typeface.createFromAsset(getAssets(), "ar_regular.ttf");
SpannableStringBuilder title = new SpannableStringBuilder(menu.getItem(i).getTitle().toString());
title.setSpan(face, 0, title.length(), 0);
MenuItem menuItem = menu.getItem(i);
menuItem.setTitle(title);
}
return true;
}









share|improve this question























  • try this link stackoverflow.com/questions/21942533/…

    – Android Team
    Jun 4 '18 at 12:08
















3















I have been trying to add a font to my menu items and have tried few solutions i found but none of them worked for me.



Method 1 :How to set custom typeface to items in NavigationView?



Method 2:



Menu XML



<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_notification1"
android:icon="@mipmap/filter_button"
android:title="action_notification"
app:showAsAction="always">
<menu>
<item
android:id="@+id/navmenu_cat"
android:icon="@mipmap/categories"
android:orderInCategory="100"
android:title="@string/categories" />
<item
android:id="@+id/navmenu_date"
android:icon="@mipmap/calendar"
android:orderInCategory="100"
android:title="@string/date" />
</menu>
</item>
</menu>


MyClass



public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.work_history, menu);
for (int i = 0; i < menu.size(); i++) {
Typeface face = Typeface.createFromAsset(getAssets(), "ar_regular.ttf");
SpannableStringBuilder title = new SpannableStringBuilder(menu.getItem(i).getTitle().toString());
title.setSpan(face, 0, title.length(), 0);
MenuItem menuItem = menu.getItem(i);
menuItem.setTitle(title);
}
return true;
}









share|improve this question























  • try this link stackoverflow.com/questions/21942533/…

    – Android Team
    Jun 4 '18 at 12:08














3












3








3








I have been trying to add a font to my menu items and have tried few solutions i found but none of them worked for me.



Method 1 :How to set custom typeface to items in NavigationView?



Method 2:



Menu XML



<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_notification1"
android:icon="@mipmap/filter_button"
android:title="action_notification"
app:showAsAction="always">
<menu>
<item
android:id="@+id/navmenu_cat"
android:icon="@mipmap/categories"
android:orderInCategory="100"
android:title="@string/categories" />
<item
android:id="@+id/navmenu_date"
android:icon="@mipmap/calendar"
android:orderInCategory="100"
android:title="@string/date" />
</menu>
</item>
</menu>


MyClass



public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.work_history, menu);
for (int i = 0; i < menu.size(); i++) {
Typeface face = Typeface.createFromAsset(getAssets(), "ar_regular.ttf");
SpannableStringBuilder title = new SpannableStringBuilder(menu.getItem(i).getTitle().toString());
title.setSpan(face, 0, title.length(), 0);
MenuItem menuItem = menu.getItem(i);
menuItem.setTitle(title);
}
return true;
}









share|improve this question














I have been trying to add a font to my menu items and have tried few solutions i found but none of them worked for me.



Method 1 :How to set custom typeface to items in NavigationView?



Method 2:



Menu XML



<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_notification1"
android:icon="@mipmap/filter_button"
android:title="action_notification"
app:showAsAction="always">
<menu>
<item
android:id="@+id/navmenu_cat"
android:icon="@mipmap/categories"
android:orderInCategory="100"
android:title="@string/categories" />
<item
android:id="@+id/navmenu_date"
android:icon="@mipmap/calendar"
android:orderInCategory="100"
android:title="@string/date" />
</menu>
</item>
</menu>


MyClass



public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.work_history, menu);
for (int i = 0; i < menu.size(); i++) {
Typeface face = Typeface.createFromAsset(getAssets(), "ar_regular.ttf");
SpannableStringBuilder title = new SpannableStringBuilder(menu.getItem(i).getTitle().toString());
title.setSpan(face, 0, title.length(), 0);
MenuItem menuItem = menu.getItem(i);
menuItem.setTitle(title);
}
return true;
}






java android xml






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jun 4 '18 at 12:04









mandip girimandip giri

466




466













  • try this link stackoverflow.com/questions/21942533/…

    – Android Team
    Jun 4 '18 at 12:08



















  • try this link stackoverflow.com/questions/21942533/…

    – Android Team
    Jun 4 '18 at 12:08

















try this link stackoverflow.com/questions/21942533/…

– Android Team
Jun 4 '18 at 12:08





try this link stackoverflow.com/questions/21942533/…

– Android Team
Jun 4 '18 at 12:08












2 Answers
2






active

oldest

votes


















0














you can use this lib https://github.com/chrisjenx/Calligraphy. It will set the default font to your menuItem when you attach it to a context






share|improve this answer































    0














    There is a library https://github.com/chrisjenx/Calligraphy,

    Add this dependency to your build gradle

    dependencies {
    compile 'uk.co.chrisjenx:calligraphy:2.3.0'
    }

    Then in your activity override this method

    @Override
    public void onCreate() {
    super.onCreate();
    CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
    .setDefaultFontPath("fonts/Roboto-RobotoRegular.ttf")
    .setFontAttrId(R.attr.fontPath)
    .build()
    );
    //....
    }

    @Override
    protected void attachBaseContext(Context newBase) {
    super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
    }





    share|improve this answer























      Your Answer






      StackExchange.ifUsing("editor", function () {
      StackExchange.using("externalEditor", function () {
      StackExchange.using("snippets", function () {
      StackExchange.snippets.init();
      });
      });
      }, "code-snippets");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "1"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f50680187%2fhow-do-i-add-custom-font-on-menu-item-in-android%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      0














      you can use this lib https://github.com/chrisjenx/Calligraphy. It will set the default font to your menuItem when you attach it to a context






      share|improve this answer




























        0














        you can use this lib https://github.com/chrisjenx/Calligraphy. It will set the default font to your menuItem when you attach it to a context






        share|improve this answer


























          0












          0








          0







          you can use this lib https://github.com/chrisjenx/Calligraphy. It will set the default font to your menuItem when you attach it to a context






          share|improve this answer













          you can use this lib https://github.com/chrisjenx/Calligraphy. It will set the default font to your menuItem when you attach it to a context







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Jun 4 '18 at 12:24









          TibiGTibiG

          5001415




          5001415

























              0














              There is a library https://github.com/chrisjenx/Calligraphy,

              Add this dependency to your build gradle

              dependencies {
              compile 'uk.co.chrisjenx:calligraphy:2.3.0'
              }

              Then in your activity override this method

              @Override
              public void onCreate() {
              super.onCreate();
              CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
              .setDefaultFontPath("fonts/Roboto-RobotoRegular.ttf")
              .setFontAttrId(R.attr.fontPath)
              .build()
              );
              //....
              }

              @Override
              protected void attachBaseContext(Context newBase) {
              super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
              }





              share|improve this answer




























                0














                There is a library https://github.com/chrisjenx/Calligraphy,

                Add this dependency to your build gradle

                dependencies {
                compile 'uk.co.chrisjenx:calligraphy:2.3.0'
                }

                Then in your activity override this method

                @Override
                public void onCreate() {
                super.onCreate();
                CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
                .setDefaultFontPath("fonts/Roboto-RobotoRegular.ttf")
                .setFontAttrId(R.attr.fontPath)
                .build()
                );
                //....
                }

                @Override
                protected void attachBaseContext(Context newBase) {
                super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
                }





                share|improve this answer


























                  0












                  0








                  0







                  There is a library https://github.com/chrisjenx/Calligraphy,

                  Add this dependency to your build gradle

                  dependencies {
                  compile 'uk.co.chrisjenx:calligraphy:2.3.0'
                  }

                  Then in your activity override this method

                  @Override
                  public void onCreate() {
                  super.onCreate();
                  CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
                  .setDefaultFontPath("fonts/Roboto-RobotoRegular.ttf")
                  .setFontAttrId(R.attr.fontPath)
                  .build()
                  );
                  //....
                  }

                  @Override
                  protected void attachBaseContext(Context newBase) {
                  super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
                  }





                  share|improve this answer













                  There is a library https://github.com/chrisjenx/Calligraphy,

                  Add this dependency to your build gradle

                  dependencies {
                  compile 'uk.co.chrisjenx:calligraphy:2.3.0'
                  }

                  Then in your activity override this method

                  @Override
                  public void onCreate() {
                  super.onCreate();
                  CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
                  .setDefaultFontPath("fonts/Roboto-RobotoRegular.ttf")
                  .setFontAttrId(R.attr.fontPath)
                  .build()
                  );
                  //....
                  }

                  @Override
                  protected void attachBaseContext(Context newBase) {
                  super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
                  }






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Jun 4 '18 at 12:25









                  prsandroidprsandroid

                  6528




                  6528






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f50680187%2fhow-do-i-add-custom-font-on-menu-item-in-android%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Monofisismo

                      Angular Downloading a file using contenturl with Basic Authentication

                      Olmecas